net.percederberg.mibble.type

## Class BitSetType

- java.lang.Object
- - net.percederberg.mibble.MibType
  - - net.percederberg.mibble.type.BitSetType

- All Implemented Interfaces:
    MibContext

      public class BitSetType
      extends MibType
      implements MibContext

  A bit set MIB type. This is the equivalent of a bit string, i.e. a set of bit values
  Since:
    2.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `BitSetType()` Creates a new bit set MIB type.
    `BitSetType(java.util.ArrayList<?> values)` Creates a new bit set MIB type.
    `BitSetType(Constraint constraint)` Creates a new bit set MIB type.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `MibType` | `createReference()` Creates a type reference to this type.
    `MibType` | `createReference(java.util.ArrayList<?> values)` Creates a constrained type reference to this type.
    `MibType` | `createReference(Constraint constraint)` Creates a constrained type reference to this type.
    `MibSymbol` | `findSymbol(java.lang.String name, boolean expanded)` Searches for a named MIB symbol.
    `MibValueSymbol[]` | `getAllSymbols()` Returns all named bit values.
    `Constraint` | `getConstraint()` Returns the optional type constraint.
    `MibValueSymbol` | `getSymbol(java.lang.String name)` Returns a named bit value.
    `boolean` | `hasConstraint()` Checks if this type has any constraint.
    `boolean` | `hasSymbols()` Checks if this type has any defined value symbols.
    `MibType` | `initialize(MibSymbol symbol, MibLoaderLog log)` Initializes the MIB type.
    `boolean` | `isCompatible(BitSetValue value)` Checks if the specified bit set value is compatible with this type.
    `boolean` | `isCompatible(MibValue value)` Checks if the specified value is compatible with this type.
    `java.lang.String` | `toString()` Returns a string representation of this type.

    - ### Methods inherited from class net.percederberg.mibble.MibType

      `getComment, getName, getReferenceSymbol, getTag, hasReferenceTo, hasReferenceTo, hasTag, hasTag, isPrimitive, setReferenceSymbol, setTag`

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

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

- - ### Constructor Detail

    - #### BitSetType

          public BitSetType()

      Creates a new bit set MIB type.

    - #### BitSetType

          public BitSetType(Constraint constraint)

      Creates a new bit set MIB type.
      Parameters:
        `constraint` - the additional type constraint

    - #### BitSetType

          public BitSetType(java.util.ArrayList<?> values)

      Creates a new bit set MIB type.
      Parameters:
        `values` - the additional defined symbols

  - ### Method Detail

    - #### initialize

          public MibType initialize(MibSymbol symbol,
                           MibLoaderLog log)
                             throws MibException

      Initializes the MIB type. This will remove all levels of indirection present, such as references to types or values. No information is lost by this operation. This method may modify this object as a side-effect, and will return the basic type.

      NOTE: This is an internal method that should only be called by the MIB loader.

      Specified by:
        `initialize` in class `MibType`
      Parameters:
        `symbol` - the MIB symbol containing this type
        `log` - the MIB loader log
      Returns:
        the basic MIB type
      Throws:
        `MibException` - if an error was encountered during the initialization
      Since:
        2.2

    - #### createReference

          public MibType createReference()

      Creates a type reference to this type. The type reference is normally an identical type, but with the primitive flag set to false. Only certain types support being referenced, and the default implementation of this method throws an exception.

      NOTE: This is an internal method that should only be called by the MIB loader.

      Overrides:
        `createReference` in class `MibType`
      Returns:
        the MIB type reference
      Since:
        2.2

    - #### createReference

          public MibType createReference(Constraint constraint)

      Creates a constrained type reference to this type. The type reference is normally an identical type, but with the primitive flag set to false. Only certain types support being referenced, and the default implementation of this method throws an exception.

      NOTE: This is an internal method that should only be called by the MIB loader.

      Overrides:
        `createReference` in class `MibType`
      Parameters:
        `constraint` - the type constraint
      Returns:
        the MIB type reference
      Since:
        2.2

    - #### createReference

          public MibType createReference(java.util.ArrayList<?> values)

      Creates a constrained type reference to this type. The type reference is normally an identical type, but with the primitive flag set to false. Only certain types support being referenced, and the default implementation of this method throws an exception.

      NOTE: This is an internal method that should only be called by the MIB loader.

      Overrides:
        `createReference` in class `MibType`
      Parameters:
        `values` - the type value symbols
      Returns:
        the MIB type reference
      Since:
        2.2

    - #### hasConstraint

          public boolean hasConstraint()

      Checks if this type has any constraint.
      Returns:
        true if this type has any constraint, or false otherwise

    - #### hasSymbols

          public boolean hasSymbols()

      Checks if this type has any defined value symbols.
      Returns:
        true if this type has any defined value symbols, or false otherwise

    - #### isCompatible

          public boolean isCompatible(MibValue value)

      Checks if the specified value is compatible with this type. A value is compatible if it is a bit set value with all components compatible with the constraints.
      Specified by:
        `isCompatible` in class `MibType`
      Parameters:
        `value` - the value to check
      Returns:
        true if the value is compatible, or false otherwise

    - #### isCompatible

          public boolean isCompatible(BitSetValue value)

      Checks if the specified bit set value is compatible with this type. A value is compatible if all the bits are compatible with the constraints.
      Parameters:
        `value` - the value to check
      Returns:
        true if the value is compatible, or false otherwise

    - #### getConstraint

          public Constraint getConstraint()

      Returns the optional type constraint. The type constraints for a bit set will typically be value constraints or compound value constraints.
      Returns:
        the type constraint, or null if no constraint has been set
      Since:
        2.2

    - #### getSymbol

          public MibValueSymbol getSymbol(java.lang.String name)

      Returns a named bit value. The value will be returned as a value symbol, containing a numeric MIB value. The symbol returned is not a normal MIB symbol, i.e. it is not present in any MIB file and only the name and value components are valid.

      Note: As of version 2.4 the method signature was changed to return a MibValueSymbol instead of a MibSymbol.

      Parameters:
        `name` - the symbol name
      Returns:
        the MIB value symbol, or null if not found

    - #### getAllSymbols

          public MibValueSymbol[] getAllSymbols()

      Returns all named bit values. Note that a bit string may allow unnamed values, depending on the constraints. Use the constraint object or the isCompatible() method to check if a value is compatible with this type. Also note that the value symbols returned by this method are not normal MIB symbols, i.e. only the name and value components are valid.
      Returns:
        an array of all named values (as MIB value symbols)
      Since:
        2.2

    - #### findSymbol

          public MibSymbol findSymbol(java.lang.String name,
                             boolean expanded)

      Searches for a named MIB symbol. This method may search outside the normal (or strict) scope, thereby allowing a form of relaxed search. Note that the results from the normal and expanded search may not be identical, due to the context chaining and the same symbol name appearing in various contexts.

      NOTE: This is an internal method that should only be called by the MIB loader.

      Specified by:
        `findSymbol` in interface `MibContext`
      Parameters:
        `name` - the symbol name
        `expanded` - the expanded scope flag
      Returns:
        the MIB symbol, or null if not found
      Since:
        2.4

    - #### toString

          public java.lang.String toString()

      Returns a string representation of this type.
      Overrides:
        `toString` in class `MibType`
      Returns:
        a string representation of this type