X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.logic.core%2Fsrc%2Fnet%2Fmograsim%2Flogic%2Fcore%2Ftypes%2FBitVector.java;h=aed0288d93b8efd0a660e3b9dc6b49248036ad1a;hb=153f81323a215691a0477af3fd1dd4a9d5b02958;hp=3e5c17702fd8e35c124ac3cea3e4dbc6e091728a;hpb=813aa8a53a4377eb3875752aa3569bdadb971930;p=Mograsim.git diff --git a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java index 3e5c1770..aed0288d 100644 --- a/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java +++ b/net.mograsim.logic.core/src/net/mograsim/logic/core/types/BitVector.java @@ -50,11 +50,26 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable, Iterable op) @@ -207,21 +227,32 @@ public final class BitVector implements StrictLogicType, Iterablewith all bits set to null. Use with care! + * Returns a new mutator of the specified width, with all bits set to null. Use with care! */ - public static BitVectorMutator ofLength(int length) + public static BitVectorMutator ofWidth(int width) { - return new BitVectorMutator(new Bit[length]); + return new BitVectorMutator(new Bit[width]); } /** * Returns an empty mutator which has no bits set and will simply copy the values from the first binary operation performed. + *

+ * An empty BitVectorMutator must not be converted to BitVector or used to manipulate single bits until at least one two + * operand logic operation is performed. */ public static BitVectorMutator empty() { return new BitVectorMutator(null); } + /** + * @see #empty() + */ + public boolean isEmpty() + { + return bits == null; + } + /** * Produces the resulting, immutable {@link BitVector}
* @@ -278,6 +309,8 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterable, Iterable, Iterableoffset to the right.
- * Therefore offset + other.length() <= this.length() needs to be true. + * Therefore offset + other.width() <= this.wdith() needs to be true. * - * @throws ArrayIndexOutOfBoundsException if offset + other.length() > this.length() + * @throws ArrayIndexOutOfBoundsException if offset + other.width() > this.width() * * @see Object#equals(Object) */ @@ -354,7 +395,7 @@ public final class BitVector implements StrictLogicType, Iterable, Iterable, Iterablefrom MSB to LSB (left to right). */ @@ -422,7 +468,7 @@ public final class BitVector implements StrictLogicType, Iterable