KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > codehaus > aspectwerkz > reflect > ClassInfo


1 /**************************************************************************************
2  * Copyright (c) Jonas BonŽr, Alexandre Vasseur. All rights reserved. *
3  * http://aspectwerkz.codehaus.org *
4  * ---------------------------------------------------------------------------------- *
5  * The software in this package is published under the terms of the LGPL license *
6  * a copy of which has been included with this distribution in the license.txt file. *
7  **************************************************************************************/

8 package org.codehaus.aspectwerkz.reflect;
9
10 import java.util.List JavaDoc;
11 import java.util.ArrayList JavaDoc;
12
13 /**
14  * Interface for the class info implementations.
15  *
16  * @author <a HREF="mailto:jboner@codehaus.org">Jonas BonŽr </a>
17  */

18 public interface ClassInfo extends ReflectionInfo {
19     /**
20      * Returns a constructor info by its hash.
21      * Looks up in the hierarchy
22      *
23      * @param hash
24      * @return
25      */

26     ConstructorInfo getConstructor(int hash);
27
28     /**
29      * Returns the constructors info.
30      * Does not looks up in the hierarchy
31      *
32      * @return the constructors info
33      */

34     ConstructorInfo[] getConstructors();
35
36     /**
37      * Returns a method info by its hash.
38      * Looks up in the hierarchy
39      *
40      * @param hash
41      * @return
42      */

43     MethodInfo getMethod(int hash);
44
45     /**
46      * Returns the methods info.
47      * Does not looks up in the hierarchy
48      *
49      * @return the methods info
50      */

51     MethodInfo[] getMethods();
52
53     /**
54      * Returns a field info by its hash.
55      * Looks up in the hierarchy
56      *
57      * @param hash
58      * @return
59      */

60     FieldInfo getField(int hash);
61
62     /**
63      * Returns the fields info.
64      * Does not looks up in the hierarchy
65      *
66      * @return the fields info
67      */

68     FieldInfo[] getFields();
69
70     /**
71      * Returns the class loader that loaded this class.
72      *
73      * @return the class loader
74      */

75     ClassLoader JavaDoc getClassLoader();
76
77     /**
78      * Checks if the class has a static initalizer.
79      *
80      * @return
81      */

82     boolean hasStaticInitializer();
83
84     /**
85      * Returns the static initializer info of the current underlying class if any.
86      *
87      * @return
88      */

89     StaticInitializationInfo staticInitializer();
90     
91     /**
92      * Returns the interfaces.
93      *
94      * @return the interfaces
95      */

96     ClassInfo[] getInterfaces();
97
98     /**
99      * Returns the super class, or null (superclass of java.lang.Object)
100      *
101      * @return the super class
102      */

103     ClassInfo getSuperclass();
104
105     /**
106      * Returns the component type if array type else null.
107      *
108      * @return the component type
109      */

110     ClassInfo getComponentType();
111
112     /**
113      * Is the class an interface.
114      *
115      * @return
116      */

117     boolean isInterface();
118
119     /**
120      * Is the class a primitive type.
121      *
122      * @return
123      */

124     boolean isPrimitive();
125
126     /**
127      * Is the class an array type.
128      *
129      * @return
130      */

131     boolean isArray();
132
133     public static class NullClassInfo implements ClassInfo {
134
135         public ConstructorInfo getConstructor(int hash) {
136             return null; //To change body of implemented methods use File | Settings | File Templates.
137
}
138
139         public ConstructorInfo[] getConstructors() {
140             return new ConstructorInfo[0]; //To change body of implemented methods use File | Settings | File Templates.
141
}
142
143         public MethodInfo getMethod(int hash) {
144             return null; //To change body of implemented methods use File | Settings | File Templates.
145
}
146
147         public MethodInfo[] getMethods() {
148             return new MethodInfo[0]; //To change body of implemented methods use File | Settings | File Templates.
149
}
150
151         public FieldInfo getField(int hash) {
152             return null; //To change body of implemented methods use File | Settings | File Templates.
153
}
154
155         public FieldInfo[] getFields() {
156             return new FieldInfo[0]; //To change body of implemented methods use File | Settings | File Templates.
157
}
158
159         public boolean hasStaticInitializer() {
160             return false;
161         }
162
163         /**
164          * @see org.codehaus.aspectwerkz.reflect.ClassInfo#staticInitializer()
165          */

166         public StaticInitializationInfo staticInitializer() {
167             return null;
168         }
169
170         public ClassInfo[] getInterfaces() {
171             return new ClassInfo[0]; //To change body of implemented methods use File | Settings | File Templates.
172
}
173
174         public ClassInfo getSuperclass() {
175             return null; //To change body of implemented methods use File | Settings | File Templates.
176
}
177
178         public ClassLoader JavaDoc getClassLoader() {
179             return null;
180         }
181
182         public ClassInfo getComponentType() {
183             return null; //To change body of implemented methods use File | Settings | File Templates.
184
}
185
186         public boolean isInterface() {
187             return false; //To change body of implemented methods use File | Settings | File Templates.
188
}
189
190         public boolean isPrimitive() {
191             return false; //To change body of implemented methods use File | Settings | File Templates.
192
}
193
194         public boolean isArray() {
195             return false; //To change body of implemented methods use File | Settings | File Templates.
196
}
197
198         public String JavaDoc getName() {
199             return null; //To change body of implemented methods use File | Settings | File Templates.
200
}
201
202         public String JavaDoc getSignature() {
203             return null; //To change body of implemented methods use File | Settings | File Templates.
204
}
205
206         public int getModifiers() {
207             return 0; //To change body of implemented methods use File | Settings | File Templates.
208
}
209
210         public List JavaDoc getAnnotations() {
211             return new ArrayList JavaDoc();
212         }
213     }
214 }
Popular Tags