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
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
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 }