int, short or
byte.
Each BitField is constructed with a mask value, which indicates
the bits that will be used to store and retrieve the data for that field.
For instance, the mask 0xFF indicates the least-significant byte
should be used to store the data.
As an example, consider a car painting machine that accepts paint instructions as integers. Bit fields can be used to encode this:
// blue, green and red are 1 byte values (0-255) stored in the three least
// significant bytes
BitField blue = new BitField(0xFF);
BitField green = new BitField(0xFF00);
BitField red = new BitField(0xFF0000);
// anyColor is a flag triggered if any color is used
BitField anyColor = new BitField(0xFFFFFF);
// isMetallic is a single bit flag
BitField isMetallic = new BitField(0x1000000);
Using these BitField instances, a paint instruction can be
encoded into an integer:
int paintInstruction = 0;
paintInstruction = red.setValue(paintInstruction, 35);
paintInstruction = green.setValue(paintInstruction, 100);
paintInstruction = blue.setValue(paintInstruction, 255);
Flags and data can be retrieved from the integer:
// Prints true if red, green or blue is non-zero
System.out.println(anyColor.isSet(paintInstruction)); // prints true
// Prints value of red, green and blue
System.out.println(red.getValue(paintInstruction)); // prints 35
System.out.println(green.getValue(paintInstruction)); // prints 100
System.out.println(blue.getValue(paintInstruction)); // prints 255
// Prints true if isMetallic was set
System.out.println(isMetallic.isSet(paintInstruction)); // prints false
| Modifier and Type | Field and Description |
|---|---|
| private final int | |
| private final int |
| Access | Constructor and Description |
|---|---|
| public | BitField(final int
the mask specifying which bits apply to this
BitField. Bits that are set in this mask are the bits
that this BitField operates on mask)Creates a BitField instance. |
| Modifier and Type | Method and Description |
|---|---|
| public int | Returns: the value of holder with the specified bits cleared (set to0)the int data containing the bits we're
interested in holder)Clears the bits. |
| public byte | Returns: the value of holder with the specified bits cleared (set to0)the byte data containing the bits we're
interested in holder)Clears the bits. |
| public short | Returns: the value of holder with the specified bits cleared (set to0)the short data containing the bits we're
interested in holder)Clears the bits. |
| public int | Returns: the selected bitsthe int data containing the bits we're
interested in holder)Obtains the value for the specified BitField, unshifted. |
| public short | Returns: the selected bitsthe short data containing the bits we're
interested in holder)Obtains the value for the specified BitField, unshifted. |
| public short | Returns: the selected bits, shifted right appropriatelythe short data containing the bits we're
interested in holder)Obtains the value for the specified BitField, appropriately shifted right, as a short. |
| public int | Returns: the selected bits, shifted right appropriatelythe int data containing the bits we're interested
in holder)Obtains the value for the specified BitField, appropriately shifted right. |
| public boolean | Returns: true if all of the bits are set,
else falsethe int data containing the bits we're
interested in holder)Tests whether all of the bits are set or not. |
| public boolean | Returns: true if any of the bits are set,
else falsethe int data containing the bits we're interested
in holder)Tests whether the field is set or not. |
| public int | Returns: the value of holder with the specified bits set to1the int data containing the bits we're
interested in holder)Sets the bits. |
| public int | Returns: the value of holder with the specified bits set or clearedthe int data containing the bits we're
interested in holder, final boolean indicating whether to set or clear the bits flag)Sets a boolean BitField. |
| public byte | Returns: the value of holder with the specified bits set to1the byte data containing the bits we're
interested in holder)Sets the bits. |
| public byte | Returns: the value of holder with the specified bits set or clearedthe byte data containing the bits we're
interested in holder, final boolean indicating whether to set or clear the bits flag)Sets a boolean BitField. |
| public short | Returns: the value of holder with the specified bits set to1the short data containing the bits we're
interested in holder)Sets the bits. |
| public short | Returns: the value of holder with the specified bits set or clearedthe short data containing the bits we're
interested in holder, final boolean indicating whether to set or clear the bits flag)Sets a boolean BitField. |
| public short | Returns: the value of holder with the bits from the value parameter replacing the old bitsthe short data containing the bits we're
interested in holder, final short the new value for the specified bits value)Replaces the bits with new values. |
| public int | Returns: the value of holder with the bits from the value parameter replacing the old bitsthe int data containing the bits we're
interested in holder, final int the new value for the specified bits value)Replaces the bits with new values. |
| mask | back to summary |
|---|---|
| private final int mask | |
| shiftCount | back to summary |
|---|---|
| private final int shiftCount | |
| BitField | back to summary |
|---|---|
| public BitField(final int mask) Creates a BitField instance.
| |
| clear | back to summary |
|---|---|
| public int clear(final int holder) Clears the bits.
| |
| clearByte | back to summary |
|---|---|
| public byte clearByte(final byte holder) Clears the bits.
| |
| clearShort | back to summary |
|---|---|
| public short clearShort(final short holder) Clears the bits.
| |
| getRawValue | back to summary |
|---|---|
| public int getRawValue(final int holder) Obtains the value for the specified BitField, unshifted.
| |
| getShortRawValue | back to summary |
|---|---|
| public short getShortRawValue(final short holder) Obtains the value for the specified BitField, unshifted.
| |
| getShortValue | back to summary |
|---|---|
| public short getShortValue(final short holder) Obtains the value for the specified BitField, appropriately shifted right, as a short. Many users of a BitField will want to treat the specified bits as an int value, and will not want to be aware that the value is stored as a BitField (and so shifted left so many bits).
| |
| getValue | back to summary |
|---|---|
| public int getValue(final int holder) Obtains the value for the specified BitField, appropriately shifted right. Many users of a BitField will want to treat the specified bits as an int value, and will not want to be aware that the value is stored as a BitField (and so shifted left so many bits).
| |
| isAllSet | back to summary |
|---|---|
| public boolean isAllSet(final int holder) Tests whether all of the bits are set or not. This is a stricter test than
| |
| isSet | back to summary |
|---|---|
| public boolean isSet(final int holder) Tests whether the field is set or not. This is most commonly used for a single-bit field, which is often used to represent a boolean value; the results of using it for a multi-bit field is to determine whether *any* of its bits are set.
| |
| set | back to summary |
|---|---|
| public int set(final int holder) Sets the bits.
| |
| setBoolean | back to summary |
|---|---|
| public int setBoolean(final int holder, final boolean flag) Sets a boolean BitField.
| |
| setByte | back to summary |
|---|---|
| public byte setByte(final byte holder) Sets the bits.
| |
| setByteBoolean | back to summary |
|---|---|
| public byte setByteBoolean(final byte holder, final boolean flag) Sets a boolean BitField.
| |
| setShort | back to summary |
|---|---|
| public short setShort(final short holder) Sets the bits.
| |
| setShortBoolean | back to summary |
|---|---|
| public short setShortBoolean(final short holder, final boolean flag) Sets a boolean BitField.
| |
| setShortValue | back to summary |
|---|---|
| public short setShortValue(final short holder, final short value) Replaces the bits with new values.
| |
| setValue | back to summary |
|---|---|
| public int setValue(final int holder, final int value) Replaces the bits with new values.
| |