Package serp.bytecode
Class Annotation
- java.lang.Object
-
- serp.bytecode.Annotation
-
- All Implemented Interfaces:
BCEntity
,VisitAcceptor
public class Annotation extends java.lang.Object implements BCEntity, VisitAcceptor
A declared annotation.- Author:
- Abe White
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
Annotation.Property
An annotation property.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
acceptVisit(BCVisitor visit)
Accept a visit from aBCVisitor
, 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.Annotation.Property
addProperty(java.lang.String name)
Add a new property.Annotation.Property
addProperty(Annotation.Property p)
Import a property from another instance.void
clearProperties()
Clear all annotation properties.java.lang.ClassLoader
getClassLoader()
Return the class loader to use when loading related classes.BCEntity
getOwner()
Annotations are stored in anAnnotations
table or as part of anAnnotation
property value.ConstantPool
getPool()
Return the constant pool of the current class.Project
getProject()
Return the project of the current class.Annotation.Property[]
getProperties()
All declared properties.Annotation.Property
getProperty(java.lang.String name)
Return the property with the given name, or null if none.java.lang.Class
getType()
TheClass
object for this annotation's type.BCClass
getTypeBC()
The bytecode for the type of this annotation.int
getTypeIndex()
The index in the classConstantPool
of theUTF8Entry
holding the type of this annotation.java.lang.String
getTypeName()
The name of this annotation's type.boolean
isValid()
Return false if this entity has been removed from its parent; in this case the results of any operations on the entity are undefined.boolean
removeProperty(java.lang.String name)
Remove the property with the given name.boolean
removeProperty(Annotation.Property prop)
Remove the given property.void
setProperties(Annotation.Property[] props)
Set the annotation properties.void
setType(java.lang.Class type)
This annotation's type.void
setType(java.lang.String type)
This annotation's type.void
setType(BCClass type)
This annotation's type.void
setTypeIndex(int index)
The index in the classConstantPool
of theUTF8Entry
holding the type of this annotation.
-
-
-
Method Detail
-
getOwner
public BCEntity getOwner()
Annotations are stored in anAnnotations
table or as part of anAnnotation
property value.
-
getTypeIndex
public int getTypeIndex()
The index in the classConstantPool
of theUTF8Entry
holding the type of this annotation.
-
setTypeIndex
public void setTypeIndex(int index)
The index in the classConstantPool
of theUTF8Entry
holding the type of this annotation.
-
getTypeName
public java.lang.String getTypeName()
The name of this annotation's type.
-
getType
public java.lang.Class getType()
TheClass
object for this annotation's type.
-
getTypeBC
public BCClass getTypeBC()
The bytecode for the type of this annotation.
-
setType
public void setType(java.lang.String type)
This annotation's type.
-
setType
public void setType(java.lang.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(java.lang.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(java.lang.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(java.lang.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 interfaceBCEntity
-
getPool
public ConstantPool getPool()
Description copied from interface:BCEntity
Return the constant pool of the current class.
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
Description copied from interface:BCEntity
Return the class loader to use when loading related classes.- Specified by:
getClassLoader
in interfaceBCEntity
-
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.
-
acceptVisit
public void acceptVisit(BCVisitor visit)
Description copied from interface:VisitAcceptor
Accept a visit from aBCVisitor
, 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 interfaceVisitAcceptor
-
-