Interface JAnnotation
-
- All Superinterfaces:
JElement
- All Known Subinterfaces:
MAnnotation
- All Known Implementing Classes:
AnnotationImpl
public interface JAnnotation extends JElement
Represents a metadata that is associated with a particular JElement. Note that JAnnoations are JElements, which means that they themselves can have annotations, and can be treated as nodes in a JAM hierarchy.
Annotations can be simple or complex. Values of simple annotations can be retrieved via the various get...Value() methods. Complex attributes can be navigated via the getAnnotations() method which exposes nested attributes (which may in turn be either simple or complex.
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
SINGLE_VALUE_NAME
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.Object
getAnnotationInstance()
If this JAnnotation corresponds to metadata that is stored in a JSR175 annotation (i.e.java.lang.Object
getProxy()
If a typed annotation proxy has been registered for the annotation represented by this JAnnotation, returns this object.java.lang.String
getSimpleName()
Returns a simple name of this abstraction.JAnnotationValue
getValue(java.lang.String named)
Returns a structure which provides untyped, "by-name" access to the value of the named annotation member.JAnnotationValue[]
getValues()
Returns an array of this annotation's member values.-
Methods inherited from interface org.apache.xmlbeans.impl.jam.JElement
accept, getArtifact, getParent, getQualifiedName, getSourcePosition, toString
-
-
-
-
Field Detail
-
SINGLE_VALUE_NAME
static final java.lang.String SINGLE_VALUE_NAME
- See Also:
- Constant Field Values
-
-
Method Detail
-
getSimpleName
java.lang.String getSimpleName()
Description copied from interface:JElement
Returns a simple name of this abstraction. The exact format of the name depends on the particular abstraction (see javadoc). Please refer to the JAM package documentation for more details on naming conventions.
- Specified by:
getSimpleName
in interfaceJElement
-
getProxy
java.lang.Object getProxy()
If a typed annotation proxy has been registered for the annotation represented by this JAnnotation, returns this object. Note that it's usually easier to access proxies by simply calling JAnnotatedElement.getAnnotationProxy(proxyClass).
The value returned is guaranteed to be either a user-defined subclass of TypedAnnotationProxyBase or null.
-
getValues
JAnnotationValue[] getValues()
Returns an array of this annotation's member values.
-
getValue
JAnnotationValue getValue(java.lang.String named)
Returns a structure which provides untyped, "by-name" access to the value of the named annotation member.
-
getAnnotationInstance
java.lang.Object getAnnotationInstance()
If this JAnnotation corresponds to metadata that is stored in a JSR175 annotation (i.e. an instance of java.lang.annotation.Annotation), returns that annotation object. Returns null if the annotation does not exist or is otherwise unavailable.
Note that this is done only on a best-effort basis - the annotation object not be availble under pre-1.5 JREs and will generally only be available if the underlying annotation was view from a class file. Note that the retention policy of the annotation type usually must also be RUNTIME. Unless you are sure of all of these things, you are better off using an AnnotationProxy or the untyped value accessors (e.g. getValues()).
If this method does return something other than null, it is guaranteed to be an instance of
.java.lang.annotation.Annotation
. It is typed here asObject
simply to preserve API compatibility with Java 1.4.
-
-