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)
TransformationStrategy
toBitVector
in interface TransformationStrategy<CharSequence>
s
- the object to be turned into a bit-vector representation.object
.public long length(CharSequence s)
TransformationStrategy
TransformationStrategy.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()
TransformationStrategy
numBits
in interface TransformationStrategy<CharSequence>
public PrefixCoderTransformationStrategy copy()
TransformationStrategy
copy
in interface TransformationStrategy<CharSequence>