1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 package net.sourceforge.servletspy.util;
23
24 import java.lang.reflect.Proxy;
25 import java.util.Arrays;
26
27 /***
28 * @author arno schumacher
29 */
30 public final class ClassUtil {
31
32 private ClassUtil() {
33 }
34
35 public static String getSimpleClassName(final Class clazz) {
36 return getClassName(clazz, true);
37 }
38
39 public static String getClassName(final Class clazz) {
40 return getClassName(clazz, false);
41 }
42
43 private static String getClassName(final Class clazz,
44 final boolean stripPackage) {
45 if (clazz.isArray()) {
46 return getClassName(clazz.getComponentType(), stripPackage) + "[]";
47 } else if (Proxy.isProxyClass(clazz)) {
48 return "Proxy<"
49 + Arrays.asList(asStringArray(clazz.getInterfaces(),
50 stripPackage)) + ">";
51 } else if (stripPackage && clazz.getPackage() != null
52 && clazz.getPackage().getName().length() > 0) {
53 return clazz.getName().substring(
54 clazz.getPackage().getName().length() + 1);
55 } else {
56 return clazz.getName();
57 }
58 }
59
60 private static String[] asStringArray(final Class[] clazzes,
61 boolean stripPackage) {
62 if (clazzes == null) {
63 return new String[0];
64 } else {
65 final String[] strings = new String[clazzes.length];
66 for (int i = 0; i < strings.length; i++) {
67 strings[i] = getClassName(clazzes[i], stripPackage);
68 }
69 return strings;
70 }
71 }
72 }