Class BandSet
- java.lang.Object
-
- org.apache.commons.compress.harmony.pack200.BandSet
-
- Direct Known Subclasses:
AttributeDefinitionBands,BcBands,ClassBands,CpBands,FileBands,IcBands,MetadataBandGroup,NewAttributeBands,SegmentHeader
public abstract class BandSet extends java.lang.Object
Abstract superclass for a set of bands
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description classBandSet.BandAnalysisResultsResults obtained by trying different Codecs to encode a bandclassBandSet.BandDataBandData represents information about a band, e.g.
-
Field Summary
Fields Modifier and Type Field Description protected SegmentHeadersegmentHeader
-
Constructor Summary
Constructors Constructor Description BandSet(int effort, SegmentHeader header)Create a new BandSet
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected int[]cpEntryListToArray(java.util.List list)Converts a list of ConstantPoolEntrys to an int[] array of their indicesprotected int[]cpEntryOrNullListToArray(java.util.List theList)Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)byte[]encodeBandInt(java.lang.String name, int[] ints, BHSDCodec defaultCodec)Encode a band of integers.protected byte[]encodeFlags(java.lang.String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags)protected byte[]encodeFlags(java.lang.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(java.util.List integerList)Converts a list of Integers to an int[] array.protected long[]longListToArray(java.util.List longList)Converts a list of Longs to an long[] array.abstract voidpack(java.io.OutputStream out)Write the packed set of bands to the given output stream
-
-
-
Field Detail
-
segmentHeader
protected final SegmentHeader segmentHeader
-
-
Constructor Detail
-
BandSet
public BandSet(int effort, SegmentHeader header)
Create a new BandSet- Parameters:
effort- - the packing effort to be used (must be 1-9)header- - the segment header
-
-
Method Detail
-
pack
public abstract void pack(java.io.OutputStream out) throws java.io.IOException, Pack200Exception
Write the packed set of bands to the given output stream- Parameters:
out- TODO- Throws:
java.io.IOException- If an I/O error occurs.Pack200Exception- TODO
-
encodeScalar
public byte[] encodeScalar(int[] band, BHSDCodec codec) throws Pack200Exception
Encode a band without considering other Codecs- Parameters:
band- - the bandcodec- - the Codec to use- Returns:
- the encoded band
- Throws:
Pack200Exception- TODO
-
encodeScalar
public byte[] encodeScalar(int value, BHSDCodec codec) throws Pack200Exception
Encode a single value with the given Codec- Parameters:
value- - the value to encodecodec- - Codec to use- Returns:
- the encoded value
- Throws:
Pack200Exception- TODO
-
encodeBandInt
public byte[] encodeBandInt(java.lang.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(java.lang.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
-
integerListToArray
protected int[] integerListToArray(java.util.List integerList)
Converts a list of Integers to an int[] array.- Parameters:
integerList- conversion source.- Returns:
- conversion result.
-
longListToArray
protected long[] longListToArray(java.util.List longList)
Converts a list of Longs to an long[] array.- Parameters:
longList- conversion source.- Returns:
- conversion result.
-
cpEntryListToArray
protected int[] cpEntryListToArray(java.util.List list)
Converts a list of ConstantPoolEntrys to an int[] array of their indices- Parameters:
list- conversion source.- Returns:
- conversion result.
-
cpEntryOrNullListToArray
protected int[] cpEntryOrNullListToArray(java.util.List theList)
Converts a list of ConstantPoolEntrys or nulls to an int[] array of their indices +1 (or 0 for nulls)- Parameters:
theList- conversion source.- Returns:
- conversion result.
-
encodeFlags
protected byte[] encodeFlags(java.lang.String name, long[][] flags, BHSDCodec loCodec, BHSDCodec hiCodec, boolean haveHiFlags) throws Pack200Exception
- Throws:
Pack200Exception
-
-