1 /*
2 * Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
24 */
25
26 package java.lang.annotation;
27
28 /**
29 * Thrown to indicate that a program has attempted to access an element of
30 * an annotation type that was added to the annotation type definition after
31 * the annotation was compiled (or serialized). This exception will not be
32 * thrown if the new element has a default value.
33 * This exception can be thrown by the {@linkplain
34 * java.lang.reflect.AnnotatedElement API used to read annotations
35 * reflectively}.
36 *
37 * @author Josh Bloch
38 * @see java.lang.reflect.AnnotatedElement
39 * @since 1.5
40 */
41 public class IncompleteAnnotationException extends RuntimeException {
42 private static final long serialVersionUID = 8445097402741811912L;
43
44 private Class annotationType;
45 private String elementName;
46
47
48 /**
49 * Constructs an IncompleteAnnotationException to indicate that
50 * the named element was missing from the specified annotation type.
51 *
52 * @param annotationType the Class object for the annotation type
53 * @param elementName the name of the missing element
54 */
55 public IncompleteAnnotationException(
56 Class<? extends Annotation> annotationType,
57 String elementName) {
58 super(annotationType.getName() + " missing element " + elementName);
59
60 this.annotationType = annotationType;
61 this.elementName = elementName;
62 }
63
64 /**
65 * Returns the Class object for the annotation type with the
66 * missing element.
67 *
68 * @return the Class object for the annotation type with the
69 * missing element
70 */
71 public Class<? extends Annotation> annotationType() {
72 return annotationType;
73 }
74
75 /**
76 * Returns the name of the missing element.
77 *
78 * @return the name of the missing element
|
1 /*
2 * Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
24 */
25
26 package java.lang.annotation;
27
28 /**
29 * Thrown to indicate that a program has attempted to access an element of
30 * an annotation type that was added to the annotation type definition after
31 * the annotation was compiled (or serialized). This exception will not be
32 * thrown if the new element has a default value.
33 * This exception can be thrown by the {@linkplain
34 * java.lang.reflect.AnnotatedElement API used to read annotations
35 * reflectively}.
36 *
37 * @author Josh Bloch
38 * @see java.lang.reflect.AnnotatedElement
39 * @since 1.5
40 */
41 public class IncompleteAnnotationException extends RuntimeException {
42 private static final long serialVersionUID = 8445097402741811912L;
43
44 private Class<? extends Annotation> annotationType;
45 private String elementName;
46
47 /**
48 * Constructs an IncompleteAnnotationException to indicate that
49 * the named element was missing from the specified annotation type.
50 *
51 * @param annotationType the Class object for the annotation type
52 * @param elementName the name of the missing element
53 * @throws NullPointerException if either parameter is {@code null}
54 */
55 public IncompleteAnnotationException(
56 Class<? extends Annotation> annotationType,
57 String elementName) {
58 super(annotationType.getName().toString() +
59 " missing element " +
60 elementName.toString());
61
62 this.annotationType = annotationType;
63 this.elementName = elementName;
64 }
65
66 /**
67 * Returns the Class object for the annotation type with the
68 * missing element.
69 *
70 * @return the Class object for the annotation type with the
71 * missing element
72 */
73 public Class<? extends Annotation> annotationType() {
74 return annotationType;
75 }
76
77 /**
78 * Returns the name of the missing element.
79 *
80 * @return the name of the missing element
|