Class GammaCodedIntLabel

All Implemented Interfaces:
FlyweightPrototype<Label>, Label

public class GammaCodedIntLabel
extends AbstractIntLabel
A natural number represented in γ coding.
  • Constructor Details

    • GammaCodedIntLabel

      public GammaCodedIntLabel​(String key, int value)
      Creates a new label with given key and value.
      Parameters:
      key - the (only) key.
      value - the value of this label.
    • GammaCodedIntLabel

      public GammaCodedIntLabel​(String... key)
      Creates a new γ-coded label using the given key and value 0.
      Parameters:
      key - one string containing the key of this label.
  • Method Details

    • copy

      public GammaCodedIntLabel copy()
      Description copied from interface: Label
      Returns a copy of this label.
      Returns:
      a new label that copies this one.
    • fromBitStream

      public int fromBitStream​(InputBitStream inputBitStream, int sourceUnused) throws IOException
      Fills this label reading a γ-coded natural number from the given input bit stream.
      Parameters:
      inputBitStream - an input bit stream.
      sourceUnused - the source node.
      Returns:
      the number of bits read to fill this lbael.
      Throws:
      IOException
    • toBitStream

      public int toBitStream​(OutputBitStream outputBitStream, int sourceUnused) throws IOException
      Writes this label as a γ-coded natural number to the given output bit stream.
      Parameters:
      outputBitStream - an output bit stream.
      sourceUnused - the source node.
      Returns:
      the number of bits written.
      Throws:
      IOException
    • fixedWidth

      public int fixedWidth()
      Returns -1 (as this label has not a fixed width).
      Returns:
      -1.
    • toString

      public String toString()
      Overrides:
      toString in class AbstractIntLabel
    • toSpec

      public String toSpec()
      Description copied from interface: Label
      Returns a string representing the specification of this label.

      Each label class can be instantiated in several ways (e.g., FixedWidthIntLabel requires a name for the well-known attribute and a number of bits). This method must return a representation that can be used by ObjectParser to instantiate the class, and consequently there must exist a matching constructor whose arguments are strings.

      There is an equation that must be always satisfied:

       ObjectParser.fromSpec(x.toSpec()).toSpec().equals(x.toSpec())
       
      Returns:
      a string representing the specification of this label.
      See Also:
      ObjectParser.fromSpec(String, Class)