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