1 23 package com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2; 24 25 import java.util.*; 26 import java.lang.reflect.Method ; 27 import com.sun.enterprise.deployment.*; 28 import com.sun.enterprise.deployment.QueryDescriptor; 29 import com.sun.enterprise.tools.verifier.Result; 30 import com.sun.enterprise.tools.verifier.tests.*; 31 32 38 public class FindMethodHasDescriptors extends QueryMethodTest { 39 40 52 protected boolean runIndividualQueryTest(Method method, EjbCMPEntityDescriptor descriptor, Class targetClass, Result result) { 53 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 54 if (method.getName().equals("findByPrimaryKey")) { 55 result.addGoodDetails(smh.getLocalString 56 ("tests.componentNameConstructor", 57 "For [ {0} ]", 58 new Object [] {compName.toString()})); 59 result.addGoodDetails(smh.getLocalString 60 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.passed1", 61 "Passed: Found method findByPrimaryKey", 62 new Object [] {})); 63 return true; 64 } 65 66 Set set = descriptor.getPersistenceDescriptor().getQueriedMethods(); 68 Iterator iterator = set.iterator(); 69 if (iterator.hasNext()) { 70 while(iterator.hasNext()) { 71 MethodDescriptor queryMethod = (MethodDescriptor) iterator.next(); 72 if (queryMethod.getName().equals(method.getName())) { 73 Class mParms[] = method.getParameterTypes(); 74 String queryParms[] = queryMethod.getParameterClassNames(); 75 int queryParamsLen; 76 if(queryParms == null) 77 queryParamsLen = 0; 78 else 79 queryParamsLen = queryParms.length; 80 if (queryParamsLen == mParms.length) { 81 boolean same = true; 82 if(queryParamsLen > 0) 83 { 84 for (int i=0;i<mParms.length;i++) { 85 if (!mParms[i].getName().equals(queryParms[i])) 86 same=false; 87 } 88 } 89 if (same) { 90 result.addGoodDetails(smh.getLocalString 91 ("tests.componentNameConstructor", 92 "For [ {0} ]", 93 new Object [] {compName.toString()})); 94 result.addGoodDetails(smh.getLocalString 95 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.passed", 96 "[ {0} ] has a query element associated with it", 97 new Object [] {method})); 98 return true; 99 } 100 } 101 } 102 } 103 result.addErrorDetails(smh.getLocalString 104 ("tests.componentNameConstructor", 105 "For [ {0} ]", 106 new Object [] {compName.toString()})); 107 result.addErrorDetails(smh.getLocalString 108 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.failed", 109 "Error : [ {0} ] seems to be a finder method but has no query element associated with it", 110 new Object [] {method})); 111 return false; 112 } 113 else { 114 result.addGoodDetails(smh.getLocalString 115 ("tests.componentNameConstructor", 116 "For [ {0} ]", 117 new Object [] {compName.toString()})); 118 result.addGoodDetails(smh.getLocalString 119 ("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.FindMethodHasDescriptors.notApplicable", 120 "NotApplicable : No Query methods found", 121 new Object [] {})); 122 return true; 123 } 124 125 } 126 } 127 | Popular Tags |