java.lang.Object
org.apache.commons.compress.harmony.unpack200.bytecode.ClassFileEntry
org.apache.commons.compress.harmony.unpack200.bytecode.Attribute
Direct Known Subclasses:
AnnotationsAttribute, BCIRenumberedAttribute, ConstantValueAttribute, DeprecatedAttribute, EnclosingMethodAttribute, ExceptionsAttribute, InnerClassesAttribute, SignatureAttribute, SourceFileAttribute

public abstract class Attribute extends ClassFileEntry
Abstract superclass for class file attributes
  • Field Details

  • Constructor Details

    • Attribute

      public Attribute(CPUTF8 attributeName)
      Constructs a new instance for an attribute name.
      Parameters:
      attributeName - an attribute name.
  • Method Details

    • doWrite

      protected void doWrite(DataOutputStream dos) throws IOException
      Description copied from class: ClassFileEntry
      Writes this instance to the output stream.
      Specified by:
      doWrite in class ClassFileEntry
      Parameters:
      dos - the output stream.
      Throws:
      IOException - if an I/O error occurs.
    • equals

      public boolean equals(Object obj)
      Specified by:
      equals in class ClassFileEntry
    • getAttributeName

      protected CPUTF8 getAttributeName()
      Gets the attribute name.
      Returns:
      the attribute name.
    • getLength

      protected abstract int getLength()
      Gets the length.
      Returns:
      the length.
    • getLengthIncludingHeader

      protected int getLengthIncludingHeader()
      Answer the length of the receiver including its header (the u2 for the attribute name and the u4 for the attribute length). This is relevant when attributes are nested within other attributes - the outer attribute needs to take the inner attribute headers into account when calculating its length.
      Returns:
      int adjusted length
    • getNestedClassFileEntries

      Description copied from class: ClassFileEntry
      Returns an empty array.
      Overrides:
      getNestedClassFileEntries in class ClassFileEntry
      Returns:
      an empty array.
    • hasBCIRenumbering

      public boolean hasBCIRenumbering()
      Answer true if the receiver needs to have BCI renumbering applied to it; otherwise answer false.
      Returns:
      boolean BCI renumbering required
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class ClassFileEntry
    • isSourceFileAttribute

      public boolean isSourceFileAttribute()
      Answer true if the receiver is a source file attribute (which gets special handling when the class is built); otherwise answer false.
      Returns:
      boolean source file attribute
    • resolve

      protected void resolve(ClassConstantPool pool)
      Description copied from class: ClassFileEntry
      Allows the constant pool entries to resolve their nested entries.
      Overrides:
      resolve in class ClassFileEntry
      Parameters:
      pool - The class constant pool.
    • writeBody

      protected abstract void writeBody(DataOutputStream out) throws IOException
      Writes this body to the given output stream.
      Parameters:
      out - the output stream.
      Throws:
      IOException - if an I/O error occurs.