Package org.apache.commons.compress.harmony.pack200

# Class ClassBands

java.lang.Object
org.apache.commons.compress.harmony.pack200.BandSet
org.apache.commons.compress.harmony.pack200.ClassBands

public class ClassBands extends BandSet
Class bands (corresponds to the `class_bands` set of bands in the pack200 specification)

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.compress.harmony.pack200.BandSet

  `BandSet.BandAnalysisResults, BandSet.BandData`

- ## Field Summary

  ### Fields inherited from class org.apache.commons.compress.harmony.pack200.BandSet

  `segmentHeader`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ClassBands(Segment segment, int numClasses, int effort, boolean stripDebug)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addAnnotation(int context, String desc, boolean visible, List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)`
  `void`
  `addAnnotationDefault(List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)`
  `void`
  `addClass(int major, int flags, String className, String signature, String superName, String[] interfaces)`
  `void`
  `addClassAttribute(NewAttribute attribute)`
  Adds a new class attribute.
  `void`
  `addCode()`
  `void`
  `addCodeAttribute(NewAttribute attribute)`
  Adds a new code attribute.
  `void`
  `addEnclosingMethod(String ownerClassName, String name, String signature)`
  Adds an enclosing method.
  `void`
  `addField(int flags, String name, String desc, String signature, Object value)`
  `void`
  `addFieldAttribute(NewAttribute attribute)`
  Adds a new field attribute.
  `void`
  `addHandler(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, String type)`
  `void`
  `addLineNumber(int line, org.objectweb.asm.Label start)`
  `void`
  `addLocalVariable(String name, String desc, String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int indx)`
  `void`
  `addMaxStack(int maxStack, int maxLocals)`
  `void`
  `addMethod(int flags, String name, String desc, String signature, String[] exceptions)`
  `void`
  `addMethodAttribute(NewAttribute attribute)`
  Adds a new method attribute.
  `void`
  `addParameterAnnotation(int parameter, String desc, boolean visible, List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)`
  `void`
  `addSourceFile(String source)`
  Adds a source file path.
  `protected static int`
  `countArgs(String descriptor)`
  Counts arguments in a descriptor.
  `void`
  `currentClassReferencesInnerClass(CPClass inner)`
  `void`
  `doBciRenumbering(IntList bciRenumbering, Map<org.objectweb.asm.Label,Integer> labelsToOffsets)`
  `void`
  `endOfClass()`
  Called when all the data for the current class has been.
  `void`
  `endOfMethod()`
  Called when all the data for the current method has been.
  `void`
  `finaliseBands()`
  All input classes for the segment have now been read in, so this method is called so that this class can calculate/complete anything it could not do while classes were being read.
  `boolean`
  `isAnySyntheticClasses()`
  Tests whether there are any synthetic classes.
  `boolean`
  `isAnySyntheticFields()`
  Tests whether there are any synthetic fields.
  `boolean`
  `isAnySyntheticMethods()`
  Tests whether there are any synthetic methods.
  `int`
  `numClassesProcessed()`
  Gets the number of classes processed.
  `void`
  `pack(OutputStream out)`
  Writes the packed set of bands to the given output stream.
  `void`
  `removeCurrentClass()`
  Remove all entries for the current class

  ### Methods inherited from class org.apache.commons.compress.harmony.pack200.BandSet

  `cpEntryListToArray, cpEntryOrNullListToArray, encodeBandInt, encodeFlags, encodeFlags, encodeScalar, encodeScalar, integerListToArray, longListToArray`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### ClassBands

    public ClassBands(Segment segment, int numClasses, int effort, boolean stripDebug) throws IOException
    Throws:
      `IOException`

- ## Method Details

  - ### countArgs

    protected static int countArgs(String descriptor)
    Counts arguments in a descriptor.
    Parameters:
      `descriptor` - the descriptor to parse.
    Returns:
      the argument count.

  - ### addAnnotation

    public void addAnnotation(int context, String desc, boolean visible, List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)

  - ### addAnnotationDefault

    public void addAnnotationDefault(List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)

  - ### addClass

    public void addClass(int major, int flags, String className, String signature, String superName, String[] interfaces)

  - ### addClassAttribute

    public void addClassAttribute(NewAttribute attribute)
    Adds a new class attribute.
    Parameters:
      `attribute` - the new class attribute.

  - ### addCode

    public void addCode()

  - ### addCodeAttribute

    public void addCodeAttribute(NewAttribute attribute)
    Adds a new code attribute.
    Parameters:
      `attribute` - the new code attribute.

  - ### addEnclosingMethod

    public void addEnclosingMethod(String ownerClassName, String name, String signature)
    Adds an enclosing method.
    Parameters:
      `ownerClassName` - a fully-qualifed class name.
      `name` - a method name.
      `signature` - a signature in the constant pool.

  - ### addField

    public void addField(int flags, String name, String desc, String signature, Object value)

  - ### addFieldAttribute

    public void addFieldAttribute(NewAttribute attribute)
    Adds a new field attribute.
    Parameters:
      `attribute` - the new field attribute.

  - ### addHandler

    public void addHandler(org.objectweb.asm.Label start, org.objectweb.asm.Label end, org.objectweb.asm.Label handler, String type)

  - ### addLineNumber

    public void addLineNumber(int line, org.objectweb.asm.Label start)

  - ### addLocalVariable

    public void addLocalVariable(String name, String desc, String signature, org.objectweb.asm.Label start, org.objectweb.asm.Label end, int indx)

  - ### addMaxStack

    public void addMaxStack(int maxStack, int maxLocals)

  - ### addMethod

    public void addMethod(int flags, String name, String desc, String signature, String[] exceptions)

  - ### addMethodAttribute

    public void addMethodAttribute(NewAttribute attribute)
    Adds a new method attribute.
    Parameters:
      `attribute` - the new method attribute.

  - ### addParameterAnnotation

    public void addParameterAnnotation(int parameter, String desc, boolean visible, List<String> nameRU, List<String> tags, List<Object> values, List<Integer> caseArrayN, List<String> nestTypeRS, List<String> nestNameRU, List<Integer> nestPairN)

  - ### addSourceFile

    public void addSourceFile(String source)
    Adds a source file path.
    Parameters:
      `source` - a source file path.

  - ### currentClassReferencesInnerClass

    public void currentClassReferencesInnerClass(CPClass inner)

  - ### doBciRenumbering

    public void doBciRenumbering(IntList bciRenumbering, Map<org.objectweb.asm.Label,Integer> labelsToOffsets)

  - ### endOfClass

    public void endOfClass()
    Called when all the data for the current class has been.
    See Also:
      - `Segment.visitEnd()`

  - ### endOfMethod

    public void endOfMethod()
    Called when all the data for the current method has been.
    See Also:
      - `Segment.SegmentMethodVisitor.visitEnd()`

  - ### finaliseBands

    public void finaliseBands()
    All input classes for the segment have now been read in, so this method is called so that this class can calculate/complete anything it could not do while classes were being read.

  - ### isAnySyntheticClasses

    public boolean isAnySyntheticClasses()
    Tests whether there are any synthetic classes.
    Returns:
      whether there are any synthetic classes.

  - ### isAnySyntheticFields

    public boolean isAnySyntheticFields()
    Tests whether there are any synthetic fields.
    Returns:
      whether there are any synthetic fields.

  - ### isAnySyntheticMethods

    public boolean isAnySyntheticMethods()
    Tests whether there are any synthetic methods.
    Returns:
      whether there are any synthetic methods.

  - ### numClassesProcessed

    public int numClassesProcessed()
    Gets the number of classes processed.
    Returns:
      the number of classes processed.

  - ### pack

    public void pack(OutputStream out) throws IOException, Pack200Exception
    Description copied from class: `BandSet`
    Writes the packed set of bands to the given output stream.
    Specified by:
      `pack` in class `BandSet`
    Parameters:
      `out` - TODO
    Throws:
      `IOException` - If an I/O error occurs.
      `Pack200Exception` - If a Pack200 semantic error occurs.

  - ### removeCurrentClass

    public void removeCurrentClass()
    Remove all entries for the current class