KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > sf > retrotranslator > runtime > java > lang > reflect > _AnnotatedElement


1 /***
2  * Retrotranslator: a Java bytecode transformer that translates Java classes
3  * compiled with JDK 5.0 into classes that can be run on JVM 1.4.
4  *
5  * Copyright (c) 2005 - 2007 Taras Puchko
6  * All rights reserved.
7  *
8  * Redistribution and use in source and binary forms, with or without
9  * modification, are permitted provided that the following conditions
10  * are met:
11  * 1. Redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer.
13  * 2. Redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution.
16  * 3. Neither the name of the copyright holders nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
23  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
24  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
25  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
26  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
27  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
28  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
29  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
30  * THE POSSIBILITY OF SUCH DAMAGE.
31  */

32 package net.sf.retrotranslator.runtime.java.lang.reflect;
33
34 import java.lang.reflect.*;
35 import net.sf.retrotranslator.runtime.java.lang.*;
36 import net.sf.retrotranslator.runtime.java.lang.annotation.Annotation_;
37
38 /**
39  * @author Taras Puchko
40  */

41 public class _AnnotatedElement {
42
43     public static boolean executeInstanceOfInstruction(Object JavaDoc object) {
44         return object instanceof Class JavaDoc ||
45                 object instanceof Constructor ||
46                 object instanceof Field ||
47                 object instanceof Method ||
48                 object instanceof Package JavaDoc ||
49                 object instanceof AnnotatedElement_;
50     }
51
52     public static Object JavaDoc executeCheckCastInstruction(Object JavaDoc object) {
53         if (object instanceof Class JavaDoc) {
54             return (Class JavaDoc) object;
55         }
56         if (object instanceof Constructor) {
57             return (Constructor) object;
58         }
59         if (object instanceof Field) {
60             return (Field) object;
61         }
62         if (object instanceof Method) {
63             return (Method) object;
64         }
65         if (object instanceof Package JavaDoc) {
66             return (Package JavaDoc) object;
67         }
68         return (AnnotatedElement_) object;
69     }
70
71     public static Annotation_ getAnnotation(Object JavaDoc object, Class JavaDoc<? extends Annotation_> annotationType) {
72         if (object instanceof Class JavaDoc) {
73             return _Class.getAnnotation((Class JavaDoc) object, annotationType);
74         }
75         if (object instanceof Constructor) {
76             return _Constructor.getAnnotation((Constructor) object, annotationType);
77         }
78         if (object instanceof Field) {
79             return _Field.getAnnotation((Field) object, annotationType);
80         }
81         if (object instanceof Method) {
82             return _Method.getAnnotation((Method) object, annotationType);
83         }
84         if (object instanceof Package JavaDoc) {
85             return _Package.getAnnotation((Package JavaDoc) object, annotationType);
86         }
87         return ((AnnotatedElement_) object).getAnnotation(annotationType);
88     }
89
90     public static Annotation_[] getAnnotations(Object JavaDoc object) {
91         if (object instanceof Class JavaDoc) {
92             return _Class.getAnnotations((Class JavaDoc) object);
93         }
94         if (object instanceof Constructor) {
95             return _Constructor.getAnnotations((Constructor) object);
96         }
97         if (object instanceof Field) {
98             return _Field.getAnnotations((Field) object);
99         }
100         if (object instanceof Method) {
101             return _Method.getAnnotations((Method) object);
102         }
103         if (object instanceof Package JavaDoc) {
104             return _Package.getAnnotations((Package JavaDoc) object);
105         }
106         return ((AnnotatedElement_) object).getAnnotations();
107     }
108
109     public static Annotation_[] getDeclaredAnnotations(Object JavaDoc object) {
110         if (object instanceof Class JavaDoc) {
111             return _Class.getDeclaredAnnotations((Class JavaDoc) object);
112         }
113         if (object instanceof Constructor) {
114             return _Constructor.getDeclaredAnnotations((Constructor) object);
115         }
116         if (object instanceof Field) {
117             return _Field.getDeclaredAnnotations((Field) object);
118         }
119         if (object instanceof Method) {
120             return _Method.getDeclaredAnnotations((Method) object);
121         }
122         if (object instanceof Package JavaDoc) {
123             return _Package.getDeclaredAnnotations((Package JavaDoc) object);
124         }
125         return ((AnnotatedElement_) object).getDeclaredAnnotations();
126     }
127
128     public static boolean isAnnotationPresent(Object JavaDoc object, Class JavaDoc<? extends Annotation_> annotationType) {
129         if (object instanceof Class JavaDoc) {
130             return _Class.isAnnotationPresent((Class JavaDoc) object, annotationType);
131         }
132         if (object instanceof Constructor) {
133             return _Constructor.isAnnotationPresent((Constructor) object, annotationType);
134         }
135         if (object instanceof Field) {
136             return _Field.isAnnotationPresent((Field) object, annotationType);
137         }
138         if (object instanceof Method) {
139             return _Method.isAnnotationPresent((Method) object, annotationType);
140         }
141         if (object instanceof Package JavaDoc) {
142             return _Package.isAnnotationPresent((Package JavaDoc) object, annotationType);
143         }
144         return ((AnnotatedElement_) object).isAnnotationPresent(annotationType);
145     }
146
147 }
148
Popular Tags