Top Description Fields Constructors Methods
org.apache.commons.compress.harmony.unpack200

public Class SegmentHeader

extends Object
Class Inheritance
Imports
java.io.ByteArrayInputStream, .IOException, .InputStream, org.apache.commons.compress.harmony.pack200.BHSDCodec, .Codec, .Pack200Exception, org.apache.commons.compress.utils.IOUtils

SegmentHeader is the header band of a Segment

Field Summary

Modifier and TypeField and Description
private int
private int
private long
private long
private int
private int
private InputStream
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private int
private static final byte[]
private int
private static final int[]
magic

The magic header for a Pack200 Segment is 0xCAFED00D.

private int
private SegmentOptions
private final Segment
private int

Constructor Summary

AccessConstructor and Description
public
SegmentHeader(final Segment segment)

Method Summary

Modifier and TypeMethod and Description
private int

Returns:

the decoded value
decodeScalar
(final String
the name of the scalar (primarily for logging/debugging purposes)
name
,
final InputStream
the input stream to read from
in
,
final BHSDCodec
the codec for this scalar
codec
)

Decode a scalar from the band file.

private int[]

Returns:

an array of decoded long[] values
decodeScalar
(final String
the name of the scalar (primarily for logging/debugging purposes)
name
,
final InputStream
the input stream to read from
in
,
final BHSDCodec
the codec for this scalar
codec
,
final int n)

Decode a number of scalars from the band file.

public long
public long
public int
public int
public InputStream

Returns:

the band headers input stream
getBandHeadersInputStream
()

Obtain the band headers data as an input stream.

public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public int
public SegmentOptions
public int
private void
private void
private void
private void
public void
read(final InputStream in)

private void
setArchiveMajorVersion(final int
the minor version of the archive
version
)

Sets the major version of this archive.

private void
setArchiveMinorVersion(final int
the minor version of the archive
version
)

Sets the minor version of this archive

public void
setArchiveModtime(final long archiveModtime)

public void
setArchiveSize(final long archiveSize)

private void
setAttributeDefinitionCount(final long valuie)

private void
setBandHeadersData(final byte[] bandHeaders)

public void
setSegmentsRemaining(final long value)

public void
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

archiveMajorback to summary
private int archiveMajor
archiveMinorback to summary
private int archiveMinor
archiveModtimeback to summary
private long archiveModtime
archiveSizeback to summary
private long archiveSize
archiveSizeOffsetback to summary
private int archiveSizeOffset
attributeDefinitionCountback to summary
private int attributeDefinitionCount
bandHeadersInputStreamback to summary
private InputStream bandHeadersInputStream
bandHeadersSizeback to summary
private int bandHeadersSize
classCountback to summary
private int classCount
cpClassCountback to summary
private int cpClassCount
cpDescriptorCountback to summary
private int cpDescriptorCount
cpDoubleCountback to summary
private int cpDoubleCount
cpFieldCountback to summary
private int cpFieldCount
cpFloatCountback to summary
private int cpFloatCount
cpIMethodCountback to summary
private int cpIMethodCount
cpIntCountback to summary
private int cpIntCount
cpLongCountback to summary
private int cpLongCount
cpMethodCountback to summary
private int cpMethodCount
cpSignatureCountback to summary
private int cpSignatureCount
cpStringCountback to summary
private int cpStringCount
cpUTF8Countback to summary
private int cpUTF8Count
defaultClassMajorVersionback to summary
private int defaultClassMajorVersion
defaultClassMinorVersionback to summary
private int defaultClassMinorVersion
EMPTY_BYTE_ARRAYback to summary
private static final byte[] EMPTY_BYTE_ARRAY
innerClassCountback to summary
private int innerClassCount
magicback to summary
private static final int[] magic

The magic header for a Pack200 Segment is 0xCAFED00D. I wonder where they get their inspiration from ...

numberOfFilesback to summary
private int numberOfFiles
optionsback to summary
private SegmentOptions options
segmentback to summary
private final Segment segment
segmentsRemainingback to summary
private int segmentsRemaining

Constructor Detail

SegmentHeaderback to summary
public SegmentHeader(final Segment segment)

Method Detail

decodeScalarback to summary
private int decodeScalar(final String name, final InputStream in, final BHSDCodec codec) throws IOException, Pack200Exception

Decode a scalar from the band file. A scalar is like a band, but does not perform any band code switching.

Parameters
name:String

the name of the scalar (primarily for logging/debugging purposes)

in:InputStream

the input stream to read from

codec:BHSDCodec

the codec for this scalar

Returns:int

the decoded value

Exceptions
IOException:
if there is a problem reading from the underlying input stream
Pack200Exception:
if there is a problem decoding the value or that the value is invalid
decodeScalarback to summary
private int[] decodeScalar(final String name, final InputStream in, final BHSDCodec codec, final int n) throws IOException, Pack200Exception

Decode a number of scalars from the band file. A scalar is like a band, but does not perform any band code switching.

Parameters
name:String

the name of the scalar (primarily for logging/debugging purposes)

in:InputStream

the input stream to read from

codec:BHSDCodec

the codec for this scalar

Returns:int[]

an array of decoded long[] values

Exceptions
IOException:
if there is a problem reading from the underlying input stream
Pack200Exception:
if there is a problem decoding the value or that the value is invalid
getArchiveModtimeback to summary
public long getArchiveModtime()
getArchiveSizeback to summary
public long getArchiveSize()
getArchiveSizeOffsetback to summary
public int getArchiveSizeOffset()
getAttributeDefinitionCountback to summary
public int getAttributeDefinitionCount()
getBandHeadersInputStreamback to summary
public InputStream getBandHeadersInputStream()

Obtain the band headers data as an input stream. If no band headers are present, this will return an empty input stream to prevent any further reads taking place. Note that as a stream, data consumed from this input stream can't be re-used. Data is only read from this stream if the encoding is such that additional information needs to be decoded from the stream itself.

Returns:InputStream

the band headers input stream

getBandHeadersSizeback to summary
public int getBandHeadersSize()
getClassCountback to summary
public int getClassCount()
getCpClassCountback to summary
public int getCpClassCount()
getCpDescriptorCountback to summary
public int getCpDescriptorCount()
getCpDoubleCountback to summary
public int getCpDoubleCount()
getCpFieldCountback to summary
public int getCpFieldCount()
getCpFloatCountback to summary
public int getCpFloatCount()
getCpIMethodCountback to summary
public int getCpIMethodCount()
getCpIntCountback to summary
public int getCpIntCount()
getCpLongCountback to summary
public int getCpLongCount()
getCpMethodCountback to summary
public int getCpMethodCount()
getCpSignatureCountback to summary
public int getCpSignatureCount()
getCpStringCountback to summary
public int getCpStringCount()
getCpUTF8Countback to summary
public int getCpUTF8Count()
getDefaultClassMajorVersionback to summary
public int getDefaultClassMajorVersion()
getDefaultClassMinorVersionback to summary
public int getDefaultClassMinorVersion()
getInnerClassCountback to summary
public int getInnerClassCount()
getNumberOfFilesback to summary
public int getNumberOfFiles()
getOptionsback to summary
public SegmentOptions getOptions()
getSegmentsRemainingback to summary
public int getSegmentsRemaining()
parseArchiveFileCountsback to summary
private void parseArchiveFileCounts(final InputStream in) throws IOException, Pack200Exception
parseArchiveSpecialCountsback to summary
private void parseArchiveSpecialCounts(final InputStream in) throws IOException, Pack200Exception
parseClassCountsback to summary
private void parseClassCounts(final InputStream in) throws IOException, Pack200Exception
parseCpCountsback to summary
private void parseCpCounts(final InputStream in) throws IOException, Pack200Exception
readback to summary
public void read(final InputStream in) throws IOException, Error, Pack200Exception
setArchiveMajorVersionback to summary
private void setArchiveMajorVersion(final int version) throws Pack200Exception

Sets the major version of this archive.

Parameters
version:int

the minor version of the archive

Exceptions
Pack200Exception:
if the major version is not 150
setArchiveMinorVersionback to summary
private void setArchiveMinorVersion(final int version) throws Pack200Exception

Sets the minor version of this archive

Parameters
version:int

the minor version of the archive

Exceptions
Pack200Exception:
if the minor version is not 7
setArchiveModtimeback to summary
public void setArchiveModtime(final long archiveModtime)
setArchiveSizeback to summary
public void setArchiveSize(final long archiveSize)
setAttributeDefinitionCountback to summary
private void setAttributeDefinitionCount(final long valuie)
setBandHeadersDataback to summary
private void setBandHeadersData(final byte[] bandHeaders)
setSegmentsRemainingback to summary
public void setSegmentsRemaining(final long value)
unpackback to summary
public void unpack()