it.unimi.dsi.webgraph.labelling
Class GammaCodedIntLabel

java.lang.Object
  extended by it.unimi.dsi.webgraph.labelling.AbstractLabel
      extended by it.unimi.dsi.webgraph.labelling.AbstractIntLabel
          extended by it.unimi.dsi.webgraph.labelling.GammaCodedIntLabel
All Implemented Interfaces:
FlyweightPrototype<Label>, Label

public class GammaCodedIntLabel
extends AbstractIntLabel

A natural number represented in γ coding.


Field Summary
 
Fields inherited from class it.unimi.dsi.webgraph.labelling.AbstractIntLabel
key, value
 
Constructor Summary
GammaCodedIntLabel(String... key)
          Creates a new γ-coded label using the given key and value 0.
GammaCodedIntLabel(String key, int value)
          Creates a new label with given key and value.
 
Method Summary
 GammaCodedIntLabel copy()
          Returns a copy of this label.
 int fixedWidth()
          Returns -1 (as this label has not a fixed width).
 int fromBitStream(InputBitStream inputBitStream, int sourceUnused)
          Fills this label reading a γ-coded natural number from the given input bit stream.
 int toBitStream(OutputBitStream outputBitStream, int sourceUnused)
          Writes this label as a γ-coded natural number to the given output bit stream.
 String toSpec()
          Returns a string representing the specification of this label.
 String toString()
           
 
Methods inherited from class it.unimi.dsi.webgraph.labelling.AbstractIntLabel
attributeKeys, attributeTypes, equals, get, get, getDouble, getDouble, getFloat, getFloat, getInt, getInt, getLong, getLong, hashCode, wellKnownAttributeKey
 
Methods inherited from class it.unimi.dsi.webgraph.labelling.AbstractLabel
getBoolean, getBoolean, getByte, getByte, getChar, getChar, getShort, getShort
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface it.unimi.dsi.webgraph.labelling.Label
getBoolean, getBoolean, getByte, getByte, getChar, getChar, getShort, getShort
 

Constructor Detail

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 Detail

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)