javassist.bytecode.annotation

Class Annotation

public class Annotation extends Object

The annotation structure.

An instance of this class is returned by getAnnotations() in AnnotationsAttribute or in ParameterAnnotationsAttribute.

Author: Bill Burke Shigeru Chiba Adrian Brock

See Also: getAnnotations getAnnotations MemberValue MemberValueVisitor

Constructor Summary
Annotation(int type, ConstPool cp)
Constructs an annotation including no members.
Annotation(String typeName, ConstPool cp)
Constructs an annotation including no members.
Annotation(ConstPool cp, CtClass clazz)
Constructs an annotation that can be accessed through the interface represented by clazz.
Method Summary
voidaddMemberValue(int nameIndex, MemberValue value)
Adds a new member.
voidaddMemberValue(String name, MemberValue value)
Adds a new member.
static MemberValuecreateMemberValue(ConstPool cp, CtClass type)
Makes an instance of MemberValue.
booleanequals(Object obj)
Returns true if the given object represents the same annotation as this object.
SetgetMemberNames()
Obtains all the member names.
MemberValuegetMemberValue(String name)
Obtains the member value with the given name.
StringgetTypeName()
Obtains the name of the annotation type.
ObjecttoAnnotationType(ClassLoader cl, ClassPool cp)
Constructs an annotation-type object representing this annotation.
StringtoString()
Returns a string representation of the annotation.
voidwrite(AnnotationsWriter writer)
Writes this annotation.

Constructor Detail

Annotation

public Annotation(int type, ConstPool cp)
Constructs an annotation including no members. A member can be later added to the created annotation by addMemberValue().

Parameters: type the index into the constant pool table. the entry at that index must be the CONSTANT_Utf8_Info structure repreenting the name of the annotation interface type. cp the constant pool table.

See Also: Annotation

Annotation

public Annotation(String typeName, ConstPool cp)
Constructs an annotation including no members. A member can be later added to the created annotation by addMemberValue().

Parameters: typeName the name of the annotation interface type. cp the constant pool table.

See Also: Annotation

Annotation

public Annotation(ConstPool cp, CtClass clazz)
Constructs an annotation that can be accessed through the interface represented by clazz. The values of the members are not specified.

Parameters: cp the constant pool table. clazz the interface.

Throws: NotFoundException when the clazz is not found

Method Detail

addMemberValue

public void addMemberValue(int nameIndex, MemberValue value)
Adds a new member.

Parameters: nameIndex the index into the constant pool table. The entry at that index must be a CONSTANT_Utf8_info structure. structure representing the member name. value the member value.

addMemberValue

public void addMemberValue(String name, MemberValue value)
Adds a new member.

Parameters: name the member name. value the member value.

createMemberValue

public static MemberValue createMemberValue(ConstPool cp, CtClass type)
Makes an instance of MemberValue.

Parameters: cp the constant pool table. type the type of the member.

Returns: the member value

Throws: NotFoundException when the type is not found

equals

public boolean equals(Object obj)
Returns true if the given object represents the same annotation as this object. The equality test checks the member values.

getMemberNames

public Set getMemberNames()
Obtains all the member names.

Returns: null if no members are defined.

getMemberValue

public MemberValue getMemberValue(String name)
Obtains the member value with the given name.

If this annotation does not have a value for the specified member, this method returns null. It does not return a MemberValue with the default value. The default value can be obtained from the annotation type.

Parameters: name the member name

Returns: null if the member cannot be found or if the value is the default value.

See Also: AnnotationDefaultAttribute

getTypeName

public String getTypeName()
Obtains the name of the annotation type.

Returns: the type name

toAnnotationType

public Object toAnnotationType(ClassLoader cl, ClassPool cp)
Constructs an annotation-type object representing this annotation. For example, if this annotation represents @Author, this method returns an Author object.

Parameters: cl class loader for loading an annotation type. cp class pool for obtaining class files.

Returns: the annotation

Throws: ClassNotFoundException when the class cannot found

toString

public String toString()
Returns a string representation of the annotation.

write

public void write(AnnotationsWriter writer)
Writes this annotation.

Parameters: writer the output.

Throws: IOException for an error during the write

Javassist, a Java-bytecode translator toolkit.
Copyright (C) 1999-2006 Shigeru Chiba. All Rights Reserved.