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 class
BandSet.BandAnalysisResults
Results obtained by trying different Codecs to encode a bandclass
BandSet.BandData
BandData represents information about a band, e.g.
-
Field Summary
Fields Modifier and Type Field Description protected SegmentHeader
segmentHeader
-
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 void
pack(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
-
-