Package kala.compress.harmony.pack200
Class PopulationCodec
- java.lang.Object
-
- kala.compress.harmony.pack200.Codec
-
- kala.compress.harmony.pack200.PopulationCodec
-
public class PopulationCodec extends Codec
A PopulationCodec is a Codec that is well suited to encoding data that shows statistical or repetitive patterns, containing for example a few numbers which are repeated a lot throughout the set, but not necessarily sequentially.
-
-
Field Summary
Fields Modifier and Type Field Description private int[]favouredprivate CodecfavouredCodecprivate intlprivate CodectokenCodecprivate CodecunfavouredCodec
-
Constructor Summary
Constructors Constructor Description PopulationCodec(Codec favouredCodec, int l, Codec unfavouredCodec)PopulationCodec(Codec favouredCodec, Codec tokenCodec, Codec unvafouredCodec)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intdecode(java.io.InputStream in)Decodes a sequence of bytes from the given input stream, returning the value as a long.intdecode(java.io.InputStream in, long last)Decodes a sequence of bytes from the given input stream, returning the value as a long.int[]decodeInts(int n, java.io.InputStream in)Decodes a sequence ofnvalues fromin.byte[]encode(int value)Encodes a single value into a sequence of bytes.byte[]encode(int[] favoured, int[] tokens, int[] unfavoured)byte[]encode(int value, int last)Encodes a single value into a sequence of bytes.int[]getFavoured()CodecgetFavouredCodec()CodecgetTokenCodec()CodecgetUnfavouredCodec()-
Methods inherited from class kala.compress.harmony.pack200.Codec
check, decodeInts, encode
-
-
-
-
Method Detail
-
decode
public int decode(java.io.InputStream in) throws java.io.IOException, Pack200ExceptionDescription copied from class:CodecDecodes a sequence of bytes from the given input stream, returning the value as a long. Note that this method can only be applied for non-delta encodings.- Specified by:
decodein classCodec- Parameters:
in- the input stream to read from- Returns:
- the value as a long
- Throws:
java.io.IOException- if there is a problem reading from the underlying input streamPack200Exception- if the encoding is a delta encoding
-
decode
public int decode(java.io.InputStream in, long last) throws java.io.IOException, Pack200ExceptionDescription copied from class:CodecDecodes a sequence of bytes from the given input stream, returning the value as a long. If this encoding is a delta encoding (d=1) then the previous value must be passed in as a parameter. If it is a non-delta encoding, then it does not matter what value is passed in, so it makes sense for the value to be passed in by default using code similar to:long last = 0; while (condition) { last = codec.decode(in, last); // do something with last }- Specified by:
decodein classCodec- Parameters:
in- the input stream to read fromlast- the previous value read, which must be supplied if the codec is a delta encoding- Returns:
- the value as a long
- Throws:
java.io.IOException- if there is a problem reading from the underlying input streamPack200Exception- if there is a problem decoding the value or that the value is invalid
-
decodeInts
public int[] decodeInts(int n, java.io.InputStream in) throws java.io.IOException, Pack200ExceptionDescription copied from class:CodecDecodes a sequence ofnvalues fromin. This should probably be used in most cases, since some codecs (such asPopulationCodec) only work when the number of values to be read is known.- Overrides:
decodeIntsin classCodec- Parameters:
n- the number of values to decodein- the input stream to read from- Returns:
- an array of
intvalues corresponding to values decoded - Throws:
java.io.IOException- if there is a problem reading from the underlying input streamPack200Exception- if there is a problem decoding the value or that the value is invalid
-
encode
public byte[] encode(int value) throws Pack200ExceptionDescription copied from class:CodecEncodes a single value into a sequence of bytes. Note that this method can only be used for non-delta encodings.- Specified by:
encodein classCodec- Parameters:
value- the value to encode- Returns:
- the encoded bytes
- Throws:
Pack200Exception- TODO
-
encode
public byte[] encode(int value, int last) throws Pack200ExceptionDescription copied from class:CodecEncodes a single value into a sequence of bytes.- Specified by:
encodein classCodec- Parameters:
value- the value to encodelast- the previous value encoded (for delta encodings)- Returns:
- the encoded bytes
- Throws:
Pack200Exception- TODO
-
encode
public byte[] encode(int[] favoured, int[] tokens, int[] unfavoured) throws Pack200Exception- Throws:
Pack200Exception
-
getFavoured
public int[] getFavoured()
-
getFavouredCodec
public Codec getFavouredCodec()
-
getTokenCodec
public Codec getTokenCodec()
-
getUnfavouredCodec
public Codec getUnfavouredCodec()
-
-