1 23 package com.sun.enterprise.tools.verifier.tests.ejb.entity.pksinglefield; 24 25 import com.sun.enterprise.tools.verifier.tests.ejb.EjbTest; 26 import java.lang.reflect.Field ; 27 import java.util.*; 28 import com.sun.enterprise.deployment.*; 29 import com.sun.enterprise.tools.verifier.*; 30 import com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck; 31 import com.sun.enterprise.tools.verifier.tests.*; 32 33 37 public class PrimekeyFieldPersistentFields extends EjbTest implements EjbCheck { 38 39 40 48 public Result check(EjbDescriptor descriptor) { 49 50 Result result = getInitializedResult(); 51 ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor(); 52 53 if (descriptor instanceof EjbEntityDescriptor) { 56 String persistence = 57 ((EjbEntityDescriptor)descriptor).getPersistenceType(); 58 59 if (EjbEntityDescriptor.CONTAINER_PERSISTENCE.equals(persistence)) { 60 try { 61 String primkey = 64 ((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName(); 65 if (primkey.equals("java.lang.String")) { 66 try { 67 68 FieldDescriptor primField = 69 ((EjbCMPEntityDescriptor)descriptor).getPrimaryKeyFieldDesc(); 70 71 Descriptor persistentField; 73 Field field; 74 Set persistentFields = 75 ((EjbCMPEntityDescriptor)descriptor).getPersistenceDescriptor().getCMPFields(); 76 Iterator iterator = persistentFields.iterator(); 77 boolean foundMatch = false; 78 while (iterator.hasNext()) { 79 persistentField = (Descriptor)iterator.next(); 80 if (primField != null) { 81 if (primField.getName().equals(persistentField.getName())) { 82 foundMatch = true; 83 break; 84 } else { 85 continue; 86 } 87 } else { 88 foundMatch = false; 91 break; 92 } 93 } 94 if (foundMatch) { 95 result.addGoodDetails(smh.getLocalString 96 ("tests.componentNameConstructor", 97 "For [ {0} ]", 98 new Object [] {compName.toString()})); 99 result.passed(smh.getLocalString 100 (getClass().getName() + ".passed", 101 "Primary key field [ {0} ] is defined within set of container managed fields for bean [ {1} ]", 102 new Object [] {primField.getName(),descriptor.getName()})); 103 } else { 104 if (primField != null) { 105 result.addErrorDetails(smh.getLocalString 106 ("tests.componentNameConstructor", 107 "For [ {0} ]", 108 new Object [] {compName.toString()})); 109 result.failed(smh.getLocalString 110 (getClass().getName() + ".failed", 111 "Primary key field [ {0} ] is not defined within set of container managed fields for bean [ {1} ]", 112 new Object [] {primField.getName(),descriptor.getName()})); 113 } else { 114 try { 118 if (((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName().equals("java.lang.Object")) { 119 120 result.addNaDetails(smh.getLocalString 121 ("tests.componentNameConstructor", 122 "For [ {0} ]", 123 new Object [] {compName.toString()})); 124 result.notApplicable(smh.getLocalString 125 (getClass().getName() + ".notApplicable2", 126 "Primkey field not defined for [ {0} ] bean.", 127 new Object [] {descriptor.getName()})); 128 129 } else { 130 result.addErrorDetails(smh.getLocalString 131 ("tests.componentNameConstructor", 132 "For [ {0} ]", 133 new Object [] {compName.toString()})); 134 result.failed(smh.getLocalString 135 (getClass().getName() + ".failed1", 136 "Primary key field is not defined within set of container managed fields for bean [ {0} ]", 137 new Object [] {descriptor.getName()})); 138 } 139 } catch (NullPointerException e) { 140 result.addNaDetails(smh.getLocalString 141 ("tests.componentNameConstructor", 142 "For [ {0} ]", 143 new Object [] {compName.toString()})); 144 result.notApplicable(smh.getLocalString 145 (getClass().getName() + ".notApplicable2", 146 "Primkey field not defined for [ {0} ] bean.", 147 new Object [] {descriptor.getName()})); 148 } 149 } 150 } 151 } catch (NullPointerException e) { 152 result.addErrorDetails(smh.getLocalString 153 ("tests.componentNameConstructor", 154 "For [ {0} ]", 155 new Object [] {compName.toString()})); 156 result.failed 157 (smh.getLocalString 158 (getClass().getName() + ".failed2", 159 "Error: Primary Key Field must be defined for bean [ {0} ] with primary key class set to [ {1} ]", 160 new Object [] {descriptor.getName(),primkey})); 161 } 162 } else { 163 result.addNaDetails(smh.getLocalString 164 ("tests.componentNameConstructor", 165 "For [ {0} ]", 166 new Object [] {compName.toString()})); 167 result.notApplicable(smh.getLocalString 168 (getClass().getName() + ".notApplicable3", 169 "primkey [ {0} ] is not java.lang.String for bean [ {1} ]", 170 new Object [] {primkey,descriptor.getName()})); 171 } 172 } catch (NullPointerException e) { 173 result.addNaDetails(smh.getLocalString 174 ("tests.componentNameConstructor", 175 "For [ {0} ]", 176 new Object [] {compName.toString()})); 177 result.notApplicable(smh.getLocalString 178 (getClass().getName() + ".notApplicable2", 179 "Primkey field not defined for [ {0} ] bean.", 180 new Object [] {descriptor.getName()})); 181 } 182 } else { 183 result.addNaDetails(smh.getLocalString 184 ("tests.componentNameConstructor", 185 "For [ {0} ]", 186 new Object [] {compName.toString()})); 187 result.notApplicable(smh.getLocalString 188 (getClass().getName() + ".notApplicable1", 189 "Expected [ {0} ] managed persistence, but [ {1} ] bean has [ {2} ] managed persistence", 190 new Object [] {EjbEntityDescriptor.CONTAINER_PERSISTENCE,descriptor.getName(),persistence})); 191 } 192 } else { 193 result.addNaDetails(smh.getLocalString 194 ("tests.componentNameConstructor", 195 "For [ {0} ]", 196 new Object [] {compName.toString()})); 197 result.notApplicable(smh.getLocalString 198 (getClass().getName() + ".notApplicable", 199 "{0} expected \n {1} bean, but called with {2} bean", 200 new Object [] {getClass(),"Entity","Session"})); 201 } 202 203 return result; 204 } 205 } 206 | Popular Tags |