1 23 package com.sun.enterprise.tools.verifier.tests.ejb.entity.primarykeyclass; 24 25 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 26 import java.util.*; 27 import java.lang.reflect.*; 28 import com.sun.enterprise.deployment.EjbEntityDescriptor; 29 import com.sun.enterprise.deployment.EjbDescriptor; 30 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck; 31 import com.sun.enterprise.tools.verifier.*; 32 import java.lang.ClassLoader ; 33 import com.sun.enterprise.tools.verifier.tests.*; 34 35 43 public class PrimaryKeyClassMethodEqual extends EjbTest implements EjbCheck { 44 45 46 57 public Result check(EjbDescriptor descriptor) { 58 59 Result result = getInitializedResult(); 60 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 61 62 if (descriptor instanceof EjbEntityDescriptor) { 63 String transactionType = descriptor.getTransactionType(); 64 if (EjbDescriptor.CONTAINER_TRANSACTION_TYPE.equals(transactionType)) { 65 boolean hasDefinedEqaulsMethod = false; 66 boolean oneFailed = false; 67 int lc = 0; 68 69 try { 71 Context context = getVerifierContext(); 72 ClassLoader jcl = context.getClassLoader(); 73 Class c = Class.forName(((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName(), false, getVerifierContext().getClassLoader()); 75 Method methods[] = c.getDeclaredMethods(); 76 for (int i=0; i< methods.length; i++) { 77 if (methods[i].getName().equals("equals")){ 78 hasDefinedEqaulsMethod = true; 80 lc = i; 82 break; 83 } 84 } 85 86 if (hasDefinedEqaulsMethod) { 87 result.addGoodDetails(smh.getLocalString 88 ("tests.componentNameConstructor", 89 "For [ {0} ]", 90 new Object [] {compName.toString()})); 91 result.addGoodDetails(smh.getLocalString 92 (getClass().getName() + ".debug1", 93 "For EJB primary key class [ {0} ]", 94 new Object [] {((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName()})); 95 result.addGoodDetails(smh.getLocalString 96 (getClass().getName() + ".passed", 97 "Primary key class method [ {0} ] was defined in the primary key class.", 98 new Object [] {methods[lc].getName()})); 99 } else if (!hasDefinedEqaulsMethod) { 100 oneFailed = true; 101 result.addErrorDetails(smh.getLocalString 102 ("tests.componentNameConstructor", 103 "For [ {0} ]", 104 new Object [] {compName.toString()})); 105 result.addErrorDetails(smh.getLocalString 106 (getClass().getName() + ".debug1", 107 "For EJB primary key class [ {0} ]", 108 new Object [] {((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName()})); 109 result.addErrorDetails(smh.getLocalString 110 (getClass().getName() + ".failed", 111 "Error: Primary key class method equal() was not defined in the primary key class.")); 112 } 113 114 } catch (ClassNotFoundException e) { 115 Verifier.debug(e); 116 result.addErrorDetails(smh.getLocalString 117 ("tests.componentNameConstructor", 118 "For [ {0} ]", 119 new Object [] {compName.toString()})); 120 result.failed(smh.getLocalString 121 (getClass().getName() + ".failedException", 122 "Error: Primary Key Class [ {0} ] not found within bean [ {1} ]", 123 new Object [] {((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName(), descriptor.getName()}) 124 ); 125 } 126 127 if (oneFailed) { 128 result.setStatus(result.FAILED); 129 } else { 130 result.setStatus(result.PASSED); 131 } 132 133 } else { 134 result.addNaDetails(smh.getLocalString 136 ("tests.componentNameConstructor", 137 "For [ {0} ]", 138 new Object [] {compName.toString()})); 139 result.notApplicable(smh.getLocalString 140 (getClass().getName() + ".notApplicable2", 141 "Bean [ {0} ] is not [ {1} ] managed, it is [ {2} ] managed.", 142 new Object [] {descriptor.getName(),EjbDescriptor.CONTAINER_TRANSACTION_TYPE,transactionType})); 143 } 144 145 return result; 146 147 } else { 148 result.addNaDetails(smh.getLocalString 149 ("tests.componentNameConstructor", 150 "For [ {0} ]", 151 new Object [] {compName.toString()})); 152 result.notApplicable(smh.getLocalString 153 (getClass().getName() + ".notApplicable", 154 "{0} expected {1} bean, but called with {2} bean.", 155 new Object [] {getClass(),"Entity","Session"})); 156 return result; 157 } 158 } 159 } 160 | Popular Tags |