Package serp.bytecode

Class Annotation

java.lang.Object
serp.bytecode.Annotation
All Implemented Interfaces:
BCEntity, VisitAcceptor

public class Annotation extends Object implements BCEntity, VisitAcceptor
A declared annotation.
Author:
Abe White
  • Method Details

    • getOwner

      public BCEntity getOwner()
      Annotations are stored in an Annotations table or as part of an Annotation property value.
    • getTypeIndex

      public int getTypeIndex()
      The index in the class ConstantPool of the UTF8Entry holding the type of this annotation.
    • setTypeIndex

      public void setTypeIndex(int index)
      The index in the class ConstantPool of the UTF8Entry holding the type of this annotation.
    • getTypeName

      public String getTypeName()
      The name of this annotation's type.
    • getType

      public Class getType()
      The Class object for this annotation's type.
    • getTypeBC

      public BCClass getTypeBC()
      The bytecode for the type of this annotation.
    • setType

      public void setType(String type)
      This annotation's type.
    • setType

      public void setType(Class type)
      This annotation's type.
    • setType

      public void setType(BCClass type)
      This annotation's type.
    • getProperties

      public Annotation.Property[] getProperties()
      All declared properties.
    • setProperties

      public void setProperties(Annotation.Property[] props)
      Set the annotation properties. This method is useful when importing properties from another instance.
    • getProperty

      public Annotation.Property getProperty(String name)
      Return the property with the given name, or null if none.
    • addProperty

      public Annotation.Property addProperty(Annotation.Property p)
      Import a property from another instance.
      Returns:
      the newly added property
    • addProperty

      public Annotation.Property addProperty(String name)
      Add a new property.
    • clearProperties

      public void clearProperties()
      Clear all annotation properties.
    • removeProperty

      public boolean removeProperty(Annotation.Property prop)
      Remove the given property.
      Returns:
      true if an property was removed, false otherwise
    • removeProperty

      public boolean removeProperty(String name)
      Remove the property with the given name.
      Returns:
      true if a property was removed, false otherwise
    • getProject

      public Project getProject()
      Description copied from interface: BCEntity
      Return the project of the current class.
      Specified by:
      getProject in interface BCEntity
    • getPool

      public ConstantPool getPool()
      Description copied from interface: BCEntity
      Return the constant pool of the current class.
      Specified by:
      getPool in interface BCEntity
    • getClassLoader

      public ClassLoader getClassLoader()
      Description copied from interface: BCEntity
      Return the class loader to use when loading related classes.
      Specified by:
      getClassLoader in interface BCEntity
    • isValid

      public boolean isValid()
      Description copied from interface: BCEntity
      Return false if this entity has been removed from its parent; in this case the results of any operations on the entity are undefined.
      Specified by:
      isValid in interface BCEntity
    • acceptVisit

      public void acceptVisit(BCVisitor visit)
      Description copied from interface: VisitAcceptor
      Accept a visit from a BCVisitor, calling the appropriate methods to notify the visitor that it has entered this entity, and to provide it with the proper callbacks for each sub-entity owned by this one.
      Specified by:
      acceptVisit in interface VisitAcceptor