View Javadoc

1   package com.eviware.soapui.support;
2   
3   import java.util.ArrayList;
4   import java.util.Arrays;
5   import java.util.List;
6   
7   public class ClassUtils
8   {
9      public static List<Class> getImplementedAndExtendedClasses( Object obj )
10     {
11        ArrayList<Class> result = new ArrayList<Class>();
12        addImplementedAndExtendedClasses( obj.getClass(), result );
13        return result;
14     }
15  
16     private static void addImplementedAndExtendedClasses( Class clazz, ArrayList<Class> result )
17     {
18        result.add( clazz );
19  //      result.addAll( Arrays.asList( clazz.getInterfaces() ));
20        addImplementedInterfaces(clazz, result);
21        if( clazz.getSuperclass() != null )
22        {
23            addImplementedAndExtendedClasses( clazz.getSuperclass(), result );
24        }
25     }
26  
27     private static void addImplementedInterfaces( Class intrfc, ArrayList<Class> result )
28     {
29  //      result.add( intrfc.getClass() );
30        Class<?> [] interfacesArray = intrfc.getInterfaces();
31        if( interfacesArray.length > 0 )
32        {
33           result.addAll( Arrays.asList( interfacesArray ));
34           for (int i = 0; i < interfacesArray.length; i++)
35  			{
36  				Class<?> class1 = interfacesArray[i];
37  				addImplementedInterfaces( class1, result );
38  			}
39        }
40     }
41  
42  }