public class PrefixCoderTransformationStrategy extends Object implements TransformationStrategy<CharSequence>
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.
| Modifier and Type | Field and Description |
|---|---|
protected Char2IntOpenHashMap |
char2symbol |
protected BitVector[] |
codeWord |
protected boolean |
prefixFree |
| Modifier | Constructor and Description |
|---|---|
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) |
| Modifier and Type | Method and Description |
|---|---|
PrefixCoderTransformationStrategy |
copy()
Returns a copy of this transformation strategy.
|
long |
length(CharSequence s)
Returns the length of the bit vector that would be computed by
TransformationStrategy.toBitVector(Object). |
long |
numBits()
The (approximate) number of bits occupied by this transformation.
|
LongArrayBitVector |
toBitVector(CharSequence s)
Returns a bit vector representation of the given object.
|
protected final BitVector[] codeWord
protected final Char2IntOpenHashMap char2symbol
protected final boolean prefixFree
public PrefixCoderTransformationStrategy(PrefixCoder coder, Char2IntOpenHashMap char2symbol, boolean prefixFree)
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.protected PrefixCoderTransformationStrategy(PrefixCoderTransformationStrategy transformationStrategy)
protected PrefixCoderTransformationStrategy(BitVector[] codeWord, Char2IntOpenHashMap char2symbol, boolean prefixFree)
public LongArrayBitVector toBitVector(CharSequence s)
TransformationStrategytoBitVector in interface TransformationStrategy<CharSequence>s - the object to be turned into a bit-vector representation.object.public long length(CharSequence s)
TransformationStrategyTransformationStrategy.toBitVector(Object).
The raison d'être of this method is that it is often easy to know the length of the representation without actually computing the representation.
length in interface TransformationStrategy<CharSequence>s - the object whose representation length is to be known.object (the one that would be returned by TransformationStrategy.toBitVector(Object)).public long numBits()
TransformationStrategynumBits in interface TransformationStrategy<CharSequence>public PrefixCoderTransformationStrategy copy()
TransformationStrategycopy in interface TransformationStrategy<CharSequence>