Top Description Inners Fields Constructors Methods
org.apache.commons.compress.harmony.pack200

public Class NewAttributeBands

extends BandSet
Class Inheritance
Imports
java.io.ByteArrayInputStream, .IOException, .InputStream, .OutputStream, .StringReader, .UncheckedIOException, java.util.ArrayList, .Collections, .List, .Map, org.apache.commons.compress.harmony.pack200.AttributeDefinitionBands.AttributeDefinition, org.apache.commons.compress.utils.ParsingUtils, org.objectweb.asm.Label

Sets of bands relating to a non-predefined attribute that has had a layout definition given to pack200 (e.g. via one of the -C, -M, -F or -D command line options)

Nested and Inner Type Summary

Modifier and TypeClass and Description
public static interface
NewAttributeBands.AttributeLayoutElement

An AttributeLayoutElement is a part of an attribute layout and has one or more bands associated with it, which transmit the AttributeElement data for successive Attributes of this type.

public class
public class
public class
public abstract class
public class
NewAttributeBands.Reference

Constant Pool Reference

public class
NewAttributeBands.Replication

A replication is an array of layout elements, with an associated count

public class
NewAttributeBands.Union

A Union is a type of layout element where the tag value acts as a selector for one of the union cases

public class

Field Summary

Modifier and TypeField and Description
protected List<NewAttributeBands.AttributeLayoutElement>
private int[]
private final CpBands
private final AttributeDefinitionBands.AttributeDefinition
private NewAttributeBands.Integral
private boolean
Inherited from org.apache.commons.compress.harmony.pack200.BandSet:
effortsegmentHeader

Constructor Summary

AccessConstructor and Description
public
NewAttributeBands(final int effort, final CpBands cpBands, final SegmentHeader header, final AttributeDefinitionBands.AttributeDefinition def)

Method Summary

Modifier and TypeMethod and Description
public void
addAttribute(final NewAttribute attribute)

public String
private BHSDCodec
getCodec(final String layoutElement)

Returns the BHSDCodec that should be used for the given layout element

public int
private StringReader
getStreamUpToMatchingBracket(final StringReader reader)

Utility method to get the contents of the given stream, up to the next ], (ignoring pairs of brackets [ and ])

public boolean
public int[]
public void
pack(final OutputStream
TODO
outputStream
)

Implements abstract org.apache.commons.compress.harmony.pack200.BandSet.pack.

Write the packed set of bands to the given output stream
private void
private List<NewAttributeBands.LayoutElement>

Returns:

List of LayoutElements
readBody
(final StringReader reader)

Read a 'body' section of the layout from the given stream

private int
readInteger(final int i, final InputStream inputStream)

private NewAttributeBands.AttributeLayoutElement
private NewAttributeBands.LayoutElement
private NewAttributeBands.UnionCase
readNextUnionCase(final StringReader reader)

Read a UnionCase from the stream

private Integer
readNumber(final StringReader stream)

Read a number from the stream and return it

private String
readUpToMatchingBracket(final StringReader reader)

Utility method to get the contents of the given stream, up to the next ']', (ignoring pairs of brackets '[' and ']')

public void
renumberBci(final IntList
TODO
bciRenumbering
,
final Map<Label, Integer>
TODO
labelsToOffsets
)

Renumber any bytecode indexes or offsets as described in section 5.5.2 of the pack200 specification

private void
resolveCalls()

Resolve calls in the attribute layout and returns the number of backwards callables

private void
resolveCallsForElement(final int i, final NewAttributeBands.Callable currentCallable, final NewAttributeBands.LayoutElement layoutElement)

Inherited from org.apache.commons.compress.harmony.pack200.BandSet:
cpEntryListToArraycpEntryOrNullListToArrayencodeBandIntencodeFlagsencodeFlagsencodeScalarencodeScalarintegerListToArraylongListToArray