it.unimi.dsi.bits
Class PrefixCoderTransformationStrategy

java.lang.Object
  extended by it.unimi.dsi.bits.PrefixCoderTransformationStrategy
All Implemented Interfaces:
TransformationStrategy<java.lang.CharSequence>, java.io.Serializable
Direct Known Subclasses:
HuTuckerTransformationStrategy

public class PrefixCoderTransformationStrategy
extends java.lang.Object
implements TransformationStrategy<java.lang.CharSequence>

A transformation strategy mapping strings using a prefix-free encoder.

The actual encoding must be provided via a map from characters to symbols, and a set of codewords. The default return value of the map will be used for unknown characters.

This strategy creates a new LongArrayBitVector each time toBitVector(CharSequence) is invoked.

See Also:
Serialized Form

Field Summary
protected  Char2IntOpenHashMap char2symbol
           
protected  BitVector[] codeWord
           
protected  boolean prefixFree
           
 
Constructor Summary
protected PrefixCoderTransformationStrategy(BitVector[] codeWord, Char2IntOpenHashMap char2symbol, boolean prefixFree)
           
  PrefixCoderTransformationStrategy(PrefixCoder coder, Char2IntOpenHashMap char2symbol, boolean prefixFree)
          Create a new transformation strategy based on a prefix-free coder.
protected PrefixCoderTransformationStrategy(PrefixCoderTransformationStrategy transformationStrategy)
           
 
Method Summary
 PrefixCoderTransformationStrategy copy()
          Returns a copy of this transformation strategy.
 long numBits()
          The (approximate) number of bits occupied by this transformation.
 LongArrayBitVector toBitVector(java.lang.CharSequence s)
          Returns a bit vector representation of the given object.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

codeWord

protected final BitVector[] codeWord

char2symbol

protected final Char2IntOpenHashMap char2symbol

prefixFree

protected final boolean prefixFree
Constructor Detail

PrefixCoderTransformationStrategy

public PrefixCoderTransformationStrategy(PrefixCoder coder,
                                         Char2IntOpenHashMap char2symbol,
                                         boolean prefixFree)
Create a new transformation strategy based on a prefix-free coder.

Parameters:
coder - a prefix-free coder.
char2symbol - a map from character to symbols (the default returned value will be used for unknown symbols).
prefixFree - whether it is required that the resulting bit vectors are prefix-free: in this case, symbol 0 will be appended to each string, and will not be allowed to appear in any string.

PrefixCoderTransformationStrategy

protected PrefixCoderTransformationStrategy(PrefixCoderTransformationStrategy transformationStrategy)

PrefixCoderTransformationStrategy

protected PrefixCoderTransformationStrategy(BitVector[] codeWord,
                                            Char2IntOpenHashMap char2symbol,
                                            boolean prefixFree)
Method Detail

toBitVector

public LongArrayBitVector toBitVector(java.lang.CharSequence s)
Description copied from interface: TransformationStrategy
Returns a bit vector representation of the given object.

Specified by:
toBitVector in interface TransformationStrategy<java.lang.CharSequence>
Parameters:
s - the object to be turned into bit representation.
Returns:
a bit vector representation of object.

numBits

public long numBits()
Description copied from interface: TransformationStrategy
The (approximate) number of bits occupied by this transformation.

Specified by:
numBits in interface TransformationStrategy<java.lang.CharSequence>
Returns:
the (approximate) number of bits occupied by this transformation.

copy

public PrefixCoderTransformationStrategy copy()
Description copied from interface: TransformationStrategy
Returns a copy of this transformation strategy.

Specified by:
copy in interface TransformationStrategy<java.lang.CharSequence>
Returns:
a copy of this transformation strategy.