Class BandSet
java.lang.Object
org.apache.commons.compress.harmony.pack200.BandSet
- Direct Known Subclasses:
AttributeDefinitionBands
,BcBands
,ClassBands
,CpBands
,FileBands
,IcBands
,MetadataBandGroup
,NewAttributeBands
,SegmentHeader
Abstract superclass for a set of bands
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
Results obtained by trying different Codecs to encode a bandclass
BandData represents information about a band, e.g. largest value etc and is used in the heuristics that calculate whether an alternative Codec could make the encoded band smaller. -
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionprotected int[]
cpEntryListToArray
(List<? extends ConstantPoolEntry> list) Converts a list of ConstantPoolEntrys to an int[] array of their indicesprotected int[]
cpEntryOrNullListToArray
(List<? extends ConstantPoolEntry> list) Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)byte[]
encodeBandInt
(String name, int[] ints, BHSDCodec defaultCodec) Encode a band of integers.protected byte[]
encodeFlags
(String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags) protected byte[]
encodeFlags
(String name, long[] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags) Encode a band of longs (values are split into their high and low 32 bits and then encoded as two separate bandsbyte[]
encodeScalar
(int[] band, BHSDCodec codec) Encode a band without considering other Codecsbyte[]
encodeScalar
(int value, BHSDCodec codec) Encode a single value with the given Codecprotected int[]
integerListToArray
(List<Integer> integerList) Converts a list of Integers to an int[] array.protected long[]
longListToArray
(List<Long> longList) Converts a list of Longs to an long[] array.abstract void
pack
(OutputStream out) Write the packed set of bands to the given output stream
-
Field Details
-
segmentHeader
-
-
Constructor Details
-
BandSet
Constructs a new BandSet.- Parameters:
effort
- the packing effort to be used (must be 1-9)header
- the segment header
-
-
Method Details
-
cpEntryListToArray
Converts a list of ConstantPoolEntrys to an int[] array of their indices- Parameters:
list
- conversion source.- Returns:
- conversion result.
-
cpEntryOrNullListToArray
Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)- Parameters:
list
- conversion source.- Returns:
- conversion result.
-
encodeBandInt
public byte[] encodeBandInt(String name, int[] ints, BHSDCodec defaultCodec) throws Pack200Exception Encode a band of integers. The default codec may be used, but other Codecs are considered if effort is greater than 1.- Parameters:
name
- name of the band (used for debugging)ints
- the banddefaultCodec
- the default Codec- Returns:
- the encoded band
- Throws:
Pack200Exception
- TODO
-
encodeFlags
protected byte[] encodeFlags(String name, long[] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags) throws Pack200Exception Encode a band of longs (values are split into their high and low 32 bits and then encoded as two separate bands- Parameters:
name
- name of the band (for debugging purposes)flags
- the bandloCodec
- Codec for the low 32-bits bandhiCodec
- Codec for the high 32-bits bandhaveHiFlags
- ignores the high band if true as all values would be zero- Returns:
- the encoded band
- Throws:
Pack200Exception
- TODO
-
encodeFlags
protected byte[] encodeFlags(String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags) throws Pack200Exception - Throws:
Pack200Exception
-
encodeScalar
Encode a single value with the given Codec- Parameters:
value
- the value to encodecodec
- Codec to use- Returns:
- the encoded value
- Throws:
Pack200Exception
- TODO
-
encodeScalar
Encode a band without considering other Codecs- Parameters:
band
- the bandcodec
- the Codec to use- Returns:
- the encoded band
- Throws:
Pack200Exception
- TODO
-
integerListToArray
Converts a list of Integers to an int[] array.- Parameters:
integerList
- conversion source.- Returns:
- conversion result.
-
longListToArray
Converts a list of Longs to an long[] array.- Parameters:
longList
- conversion source.- Returns:
- conversion result.
-
pack
Write the packed set of bands to the given output stream- Parameters:
out
- TODO- Throws:
IOException
- If an I/O error occurs.Pack200Exception
- TODO
-