/[classpath]/classpath/java/lang/reflect/AnnotatedElement.java
ViewVC logotype

Diff of /classpath/java/lang/reflect/AnnotatedElement.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.2.2 by gnu_andrew, Fri Jan 7 03:42:30 2005 UTC revision 1.1.2.3 by gnu_andrew, Wed Jun 8 23:24:52 2005 UTC
# Line 41  package java.lang.reflect; Line 41  package java.lang.reflect;
41  import java.lang.annotation.Annotation;  import java.lang.annotation.Annotation;
42    
43  /**  /**
44     * <p>
45     * Represents an element that can be annotated.  The methods of this interface
46     * provide reflection-based access to the annotations associated with a
47     * particular element, such as a class, field, method or package.  Each
48     * annotation returned by these methods is both immutable and serializable.
49     * The returned arrays may be freely modified, without any effect on the
50     * arrays returned to future callers.
51     * </p>
52     * <p>
53     * If an annotation refers to a type or enumeration constant that is
54     * inaccessible, then a <code>TypeNotPresentException</code> or
55     * <code>EnumConstantNotPresentException</code> will be thrown.  Likewise,
56     * invalid annotations will produce either a
57     * <code>AnnotationTypeMismatchException</code> or
58     * <code>IncompleteAnnotationException</code>.
59     * </p>
60     *
61   * @author Tom Tromey (tromey@redhat.com)   * @author Tom Tromey (tromey@redhat.com)
62   * @author Andrew John Hughes (gnu_andrew@member.fsf.org)   * @author Andrew John Hughes (gnu_andrew@member.fsf.org)
63   * @since 1.5   * @since 1.5
64   */   */
65  public interface AnnotatedElement  public interface AnnotatedElement
66  {  {
67    <T extends Annotation> T getAnnotation(Class<T> annoType);  
68      /**
69       * Returns the element's annotation for the specified annotation type,
70       * or <code>null</code> if no such annotation exists.
71       *
72       * @param annotationClass the type of annotation to look for.
73       * @return this element's annotation for the specified type, or
74       *         <code>null</code> if no such annotation exists.
75       * @throws NullPointerException if the annotation class is <code>null</code>.
76       */
77      <T extends Annotation> T getAnnotation(Class<T> annotationClass);
78    
79      /**
80       * Returns all annotations associated with the element.  If there are
81       * no annotations associated with the element, then a zero-length array
82       * will be returned.  The returned array may be modified by the client
83       * code, but this will have no effect on the annotation content of the
84       * element, and hence no effect on the return value of this method for
85       * future callers.
86       *
87       * @return this element's annotations.
88       */
89    Annotation[] getAnnotations();    Annotation[] getAnnotations();
90    Annotation[] getDeclaredAnnotation();  
91    boolean isAnnotationPresent(Class<? extends Annotation> annoType);    /**
92       * Returns all annotations directly defined by the element.  If there are
93       * no annotations directly associated with the element, then a zero-length
94       * array will be returned.  The returned array may be modified by the client
95       * code, but this will have no effect on the annotation content of this
96       * class, and hence no effect on the return value of this method for
97       * future callers.
98       *
99       * @return the annotations directly defined by the element.
100       * @since 1.5
101       */
102      Annotation[] getDeclaredAnnotations();
103    
104      /**
105       * Returns true if an annotation for the specified type is associated
106       * with the element.  This is primarily a short-hand for using marker
107       * annotations.
108       *
109       * @param annotationClass the type of annotation to look for.
110       * @return true if an annotation exists for the specified type.
111       * @since 1.5
112       */
113      boolean isAnnotationPresent(Class<? extends Annotation> annotationClass);
114    
115  }  }

Legend:
Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26