Package serp.bytecode
Class Annotations
- java.lang.Object
-
- serp.bytecode.Attributes
-
- serp.bytecode.Attribute
-
- serp.bytecode.Annotations
-
- All Implemented Interfaces:
BCEntity
,VisitAcceptor
public class Annotations extends Attribute
Java annotation data.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.List
_annotations
-
Constructor Summary
Constructors Constructor Description Annotations(int nameIndex, Attributes owner)
-
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
addAnnotation(java.lang.Class type)
Add a new annotation.Annotation
addAnnotation(java.lang.String type)
Add a new annotation.Annotation
addAnnotation(Annotation an)
Import an annotation from another instance.Annotation
addAnnotation(BCClass type)
Add a new annotation.void
clear()
Remove all annotations.Annotation
getAnnotation(java.lang.Class type)
Return the annotation of the given type, or null if none.Annotation
getAnnotation(java.lang.String type)
Return the annotation of the given type, or null if none.Annotation
getAnnotation(BCClass type)
Return the annotation of the given type, or null if none.Annotation[]
getAnnotations()
All declared annotations.(package private) int
getLength()
Return the length of the bytecode representation of this attribute in bytes, excluding the name index.boolean
isRuntime()
Whether these annotations are runtime-visible.(package private) void
read(java.io.DataInput in, int length)
Read the attribute bytecode from the given stream, up to length bytes, excluding the name index.(package private) void
read(Attribute other)
Copy the information from the given attribute to this one.boolean
removeAnnotation(java.lang.Class type)
Remove the annotation of the given type.boolean
removeAnnotation(java.lang.String type)
Remove the annotation of the given type.boolean
removeAnnotation(Annotation anno)
Remove the given annotation.boolean
removeAnnotation(BCClass type)
Remove the annotation of the given type.void
setAnnotations(Annotation[] annos)
Set the annotations.(package private) void
write(java.io.DataOutput out, int length)
Write the attribute bytecode to the given stream, up to length bytes, excluding the name index.-
Methods inherited from class serp.bytecode.Attribute
create, getAttributesHolder, getClassLoader, getName, getNameIndex, getOwner, getPool, getProject, invalidate, isValid
-
Methods inherited from class serp.bytecode.Attributes
addAttribute, addAttribute, clearAttributes, getAttribute, getAttributes, getAttributes, readAttributes, removeAttribute, removeAttribute, setAttributes, visitAttributes, writeAttributes
-
-
-
-
Constructor Detail
-
Annotations
Annotations(int nameIndex, Attributes owner)
-
-
Method Detail
-
isRuntime
public boolean isRuntime()
Whether these annotations are runtime-visible.
-
getAnnotations
public Annotation[] getAnnotations()
All declared annotations.
-
setAnnotations
public void setAnnotations(Annotation[] annos)
Set the annotations. This method is useful when importing annotations from another instance.
-
getAnnotation
public Annotation getAnnotation(java.lang.Class type)
Return the annotation of the given type, or null if none.
-
getAnnotation
public Annotation getAnnotation(BCClass type)
Return the annotation of the given type, or null if none.
-
getAnnotation
public Annotation getAnnotation(java.lang.String type)
Return the annotation of the given type, or null if none.
-
addAnnotation
public Annotation addAnnotation(Annotation an)
Import an annotation from another instance.- Returns:
- the newly added annotation
-
addAnnotation
public Annotation addAnnotation(java.lang.Class type)
Add a new annotation.
-
addAnnotation
public Annotation addAnnotation(BCClass type)
Add a new annotation.
-
addAnnotation
public Annotation addAnnotation(java.lang.String type)
Add a new annotation.
-
clear
public void clear()
Remove all annotations.
-
removeAnnotation
public boolean removeAnnotation(Annotation anno)
Remove the given annotation.- Returns:
- true if an annotation was removed, false otherwise
-
removeAnnotation
public boolean removeAnnotation(java.lang.Class type)
Remove the annotation of the given type.- Returns:
- true if an annotation was removed, false otherwise
-
removeAnnotation
public boolean removeAnnotation(BCClass type)
Remove the annotation of the given type.- Returns:
- true if an annotation was removed, false otherwise
-
removeAnnotation
public boolean removeAnnotation(java.lang.String type)
Remove the annotation of the given type.- Returns:
- true if an annotation was removed, false otherwise
-
getLength
int getLength()
Description copied from class:Attribute
Return the length of the bytecode representation of this attribute in bytes, excluding the name index.
-
read
void read(Attribute other)
Description copied from class:Attribute
Copy the information from the given attribute to this one. Does nothing by default.
-
read
void read(java.io.DataInput in, int length) throws java.io.IOException
Description copied from class:Attribute
Read the attribute bytecode from the given stream, up to length bytes, excluding the name index. Does nothing by default.
-
write
void write(java.io.DataOutput out, int length) throws java.io.IOException
Description copied from class:Attribute
Write the attribute bytecode to the given stream, up to length bytes, excluding the name index. Does nothing by default.
-
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.
-
-