1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.krad.util;
17
18 import org.kuali.rice.krad.bo.BusinessObject;
19 import org.kuali.rice.krad.bo.ExternalizableBusinessObject;
20
21
22
23
24 public final class ExternalizableBusinessObjectUtils {
25 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(ExternalizableBusinessObjectUtils.class);
26
27 private ExternalizableBusinessObjectUtils() {
28 throw new UnsupportedOperationException("do not call");
29 }
30
31
32
33
34
35
36
37 public static Class determineExternalizableBusinessObjectSubInterface(Class businessObjectClass) {
38 if (businessObjectClass == null) {
39 return null;
40 }
41
42 if (!ExternalizableBusinessObject.class.equals(businessObjectClass) && ExternalizableBusinessObject.class.isAssignableFrom(businessObjectClass)) {
43 return businessObjectClass;
44 }
45 if (ExternalizableBusinessObject.class.isAssignableFrom(businessObjectClass)) {
46 Class tempClass = businessObjectClass;
47 while (tempClass != null && !Object.class.equals(tempClass)) {
48 for (Class tempClassInterface : tempClass.getInterfaces()) {
49 if (!ExternalizableBusinessObject.class.equals(tempClassInterface) && ExternalizableBusinessObject.class.isAssignableFrom(tempClassInterface)) {
50 return tempClassInterface;
51 }
52 }
53 tempClass = tempClass.getSuperclass();
54 }
55 }
56 return null;
57 }
58
59 public static boolean isExternalizableBusinessObjectInterface(Class businessObjectClass) {
60 return businessObjectClass != null && businessObjectClass.isInterface() && ExternalizableBusinessObject.class.isAssignableFrom(businessObjectClass);
61 }
62
63 public static boolean isExternalizableBusinessObject(Class businessObjectClass) {
64 return businessObjectClass != null && ExternalizableBusinessObject.class.isAssignableFrom(businessObjectClass);
65 }
66
67
68 public static boolean isExternalizableBusinessObjectInterface(String businessObjectClassName) {
69 try {
70 Class businessObjectClass = Class.forName( businessObjectClassName );
71 return isExternalizableBusinessObjectInterface(businessObjectClass);
72 } catch ( Exception ex ) {
73 LOG.debug( "Unable to get class object for class name: " + businessObjectClassName, ex );
74 return false;
75 }
76 }
77 }