org.apache.poi.util

## Class BitField

- java.lang.Object
- - org.apache.poi.util.BitField

-     @Internal(since="POI 3.15 beta 3")
      public class BitField
      extends java.lang.Object

  Manage operations dealing with bit-mapped fields.
  Author:
    Marc Johnson (mjohnson at apache dot org), Andrew C. Oliver (acoliver at apache dot org)

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BitField(int mask)` Create a BitField instance

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `int` | `clear(int holder)` Clear the bits.
    `byte` | `clearByte(byte holder)` Clear the bits.
    `short` | `clearShort(short holder)` Clear the bits.
    `int` | `getRawValue(int holder)` Obtain the value for the specified BitField, unshifted
    `short` | `getShortRawValue(short holder)` Obtain the value for the specified BitField, unshifted
    `short` | `getShortValue(short holder)` Obtain the value for the specified BitField, appropriately shifted right, as a short.
    `int` | `getValue(int holder)` Obtain the value for the specified BitField, appropriately shifted right.
    `boolean` | `isAllSet(int holder)` Are all of the bits set or not? This is a stricter test than isSet, in that all of the bits in a multi-bit set must be set for this method to return true
    `boolean` | `isSet(int holder)` Is the field 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
    `int` | `set(int holder)` Set the bits.
    `int` | `setBoolean(int holder, boolean flag)` Set a boolean BitField
    `byte` | `setByte(byte holder)` Set the bits.
    `byte` | `setByteBoolean(byte holder, boolean flag)` Set a boolean BitField
    `short` | `setShort(short holder)` Set the bits.
    `short` | `setShortBoolean(short holder, boolean flag)` Set a boolean BitField
    `short` | `setShortValue(short holder, short value)` Replace the bits with new values.
    `int` | `setValue(int holder, int value)` Replace the bits with new values.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### BitField

          public BitField(int mask)

      Create a BitField instance
      Parameters:
        `mask` - the mask specifying which bits apply to this BitField. Bits that are set in this mask are the bits that this BitField operates on

  - ### Method Detail

    - #### getValue

          public int getValue(int holder)

      Obtain 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)
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        the selected bits, shifted right appropriately

    - #### getShortValue

          public short getShortValue(short holder)

      Obtain 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)
      Parameters:
        `holder` - the short data containing the bits we're interested in
      Returns:
        the selected bits, shifted right appropriately

    - #### getRawValue

          public int getRawValue(int holder)

      Obtain the value for the specified BitField, unshifted
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        the selected bits

    - #### getShortRawValue

          public short getShortRawValue(short holder)

      Obtain the value for the specified BitField, unshifted
      Parameters:
        `holder` - the short data containing the bits we're interested in
      Returns:
        the selected bits

    - #### isSet

          public boolean isSet(int holder)

      Is the field 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
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        true if any of the bits are set, else false

    - #### isAllSet

          public boolean isAllSet(int holder)

      Are all of the bits set or not? This is a stricter test than isSet, in that all of the bits in a multi-bit set must be set for this method to return true
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        true if all of the bits are set, else false

    - #### setValue

          public int setValue(int holder,
                              int value)

      Replace the bits with new values.
      Parameters:
        `holder` - the int data containing the bits we're interested in
        `value` - the new value for the specified bits
      Returns:
        the value of holder with the bits from the value parameter replacing the old bits

    - #### setShortValue

          public short setShortValue(short holder,
                                     short value)

      Replace the bits with new values.
      Parameters:
        `holder` - the short data containing the bits we're interested in
        `value` - the new value for the specified bits
      Returns:
        the value of holder with the bits from the value parameter replacing the old bits

    - #### clear

          public int clear(int holder)

      Clear the bits.
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits cleared (set to 0)

    - #### clearShort

          public short clearShort(short holder)

      Clear the bits.
      Parameters:
        `holder` - the short data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits cleared (set to 0)

    - #### clearByte

          public byte clearByte(byte holder)

      Clear the bits.
      Parameters:
        `holder` - the byte data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits cleared (set to 0)

    - #### set

          public int set(int holder)

      Set the bits.
      Parameters:
        `holder` - the int data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits set to 1

    - #### setShort

          public short setShort(short holder)

      Set the bits.
      Parameters:
        `holder` - the short data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits set to 1

    - #### setByte

          public byte setByte(byte holder)

      Set the bits.
      Parameters:
        `holder` - the byte data containing the bits we're interested in
      Returns:
        the value of holder with the specified bits set to 1

    - #### setBoolean

          public int setBoolean(int holder,
                                boolean flag)

      Set a boolean BitField
      Parameters:
        `holder` - the int data containing the bits we're interested in
        `flag` - indicating whether to set or clear the bits
      Returns:
        the value of holder with the specified bits set or cleared

    - #### setShortBoolean

          public short setShortBoolean(short holder,
                                       boolean flag)

      Set a boolean BitField
      Parameters:
        `holder` - the short data containing the bits we're interested in
        `flag` - indicating whether to set or clear the bits
      Returns:
        the value of holder with the specified bits set or cleared

    - #### setByteBoolean

          public byte setByteBoolean(byte holder,
                                     boolean flag)

      Set a boolean BitField
      Parameters:
        `holder` - the byte data containing the bits we're interested in
        `flag` - indicating whether to set or clear the bits
      Returns:
        the value of holder with the specified bits set or cleared

Copyright 2020 The Apache Software Foundation or its licensors, as applicable.