KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > jofti > introspect > ClassUtils


1 package com.jofti.introspect;
2
3 import java.util.ArrayList JavaDoc;
4 import java.util.List JavaDoc;
5
6 import com.jofti.model.ComparableBoolean;
7
8 /**
9  * A set of util methods for dealing with Class type issues.
10  * @author steve woodcock (steve@jofti.com)
11  *
12  */

13 public class ClassUtils
14 {
15
16     /**
17      * Iterates through a Class hierachy - starting at the Class passed in and retrieves
18      * all interfaces that are declared as part of the hierachy.
19      * @param clazz
20      * @return an Array of Interface Class objects
21      */

22     public Class JavaDoc[] getInterfaces(Class JavaDoc clazz){
23         List JavaDoc temp = new ArrayList JavaDoc();
24         temp = getAllInterfaces(temp,clazz);
25        return (Class JavaDoc[]) temp.toArray(new Class JavaDoc[temp.size()]);
26     }
27     
28     /**
29      * Iterates through a Class hierachy - starting at the Class passed in and retrieves
30      * all Classes that are declared as part of the hierachy.
31      * @param clazz
32      * @return an Array of Class objects
33      */

34     public Class JavaDoc[] getClasses(Class JavaDoc clazz){
35         List JavaDoc temp = new ArrayList JavaDoc();
36         temp.add(clazz);
37         Class JavaDoc superClazz = clazz.getSuperclass();
38         while (superClazz != null){
39             temp.add(superClazz);
40             superClazz = superClazz.getSuperclass();
41         }
42        return (Class JavaDoc[]) temp.toArray(new Class JavaDoc[temp.size()]);
43     }
44     
45     
46     private List JavaDoc getAllInterfaces(List JavaDoc list,Class JavaDoc clazz){
47         Class JavaDoc [] classes =clazz.getInterfaces();
48         for (int i =0;i<classes.length;i++){
49             list.add(classes[i]);
50             if (classes[i].getInterfaces() != null){
51                 list = getAllInterfaces(list,classes[i]);
52             }
53         }
54         return list;
55     }
56     
57     
58     /**
59      * Wraps a Boolean object in a ComparableBoolean so it can be used in an Index.
60      *
61      * @param tempObj
62      * @return Either a ComparableBoolean wrapping a Boolean or the original Object if not Boolean.
63      */

64     public Object JavaDoc wrapObject(Object JavaDoc tempObj){
65         if (tempObj instanceof Boolean JavaDoc){
66                 tempObj = new ComparableBoolean((Boolean JavaDoc)tempObj);
67             }
68         return tempObj;
69     }
70     
71    
72 }
73
Popular Tags