1 package com.atlassian.event.internal;
2
3 import com.google.common.collect.Sets;
4
5 import java.util.Set;
6
7 class ClassUtils {
8 private ClassUtils() {
9 }
10
11
12
13
14
15
16
17 static Set<Class<?>> findAllTypes(final Class<?> cls) {
18 final Set<Class<?>> types = Sets.newLinkedHashSet();
19 findAllTypes(cls, types);
20 return types;
21 }
22
23
24
25
26
27
28
29 static void findAllTypes(final Class<?> cls, final Set<Class<?>> types) {
30 if (cls == null) {
31 return;
32 }
33
34
35 if (types.contains(cls)) {
36 return;
37 }
38
39 types.add(cls);
40
41 findAllTypes(cls.getSuperclass(), types);
42 for (int x = 0; x < cls.getInterfaces().length; x++) {
43 findAllTypes(cls.getInterfaces()[x], types);
44 }
45 }
46 }