Class Annotations

java.lang.Object
org.apache.bcel.classfile.Attribute
org.apache.bcel.classfile.Annotations
All Implemented Interfaces:
Cloneable, Iterable<AnnotationEntry>, Node
Direct Known Subclasses:
RuntimeInvisibleAnnotations, RuntimeVisibleAnnotations

public abstract class Annotations extends Attribute implements Iterable<AnnotationEntry>
base class for annotations
Since:
6.0
  • Constructor Details

    • Annotations

      public Annotations(byte annotationType, int nameIndex, int length, AnnotationEntry[] annotationTable, ConstantPool constantPool, boolean isRuntimeVisible)
      Constructs an instance.
      Parameters:
      annotationType - the subclass type of the annotation.
      nameIndex - Index pointing to the name Code.
      length - Content length in bytes.
      annotationTable - the actual annotations.
      constantPool - Array of constants.
      isRuntimeVisible - whether this Annotation visible at runtime.
  • Method Details

    • accept

      public void accept(Visitor v)
      Called by objects that are traversing the nodes of the tree implicitly defined by the contents of a Java class. I.e., the hierarchy of methods, fields, attributes, etc. spawns a tree of objects.
      Specified by:
      accept in interface Node
      Specified by:
      accept in class Attribute
      Parameters:
      v - Visitor object.
    • copy

      public Attribute copy(ConstantPool constantPool)
      Description copied from class: Attribute
      Creates a deep copy of this attribute.
      Specified by:
      copy in class Attribute
      Parameters:
      constantPool - constant pool to save.
      Returns:
      deep copy of this attribute.
    • getAnnotationEntries

      Gets the array of annotation entries in this annotation.
      Returns:
      the array of annotation entries in this annotation.
    • getNumAnnotations

      public final int getNumAnnotations()
      Gets the number of annotation entries in this annotation.
      Returns:
      the number of annotation entries in this annotation.
    • isRuntimeVisible

      public boolean isRuntimeVisible()
      Gets whether this annotation is runtime visible.
      Returns:
      true if this annotation is runtime visible.
    • iterator

      Specified by:
      iterator in interface Iterable<AnnotationEntry>
    • setAnnotationTable

      public final void setAnnotationTable(AnnotationEntry[] annotationTable)
      Sets the entries to set in this annotation.
      Parameters:
      annotationTable - the entries to set in this annotation.
    • toString

      public final String toString()
      Converts to a String representation.
      Overrides:
      toString in class Attribute
      Returns:
      String representation.
    • writeAnnotations

      protected void writeAnnotations(DataOutputStream dos) throws IOException
      Writes the annotations to a DataOutputStream.
      Parameters:
      dos - the data output stream.
      Throws:
      IOException - if an I/O error occurs.