Result result = getInitializedResult();
addErrorDetails(result,
getVerifierContext().getComponentNameConstructor());
ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();
boolean oneFailed = false;
boolean found = false;
Class c = loadEjbClass(descriptor, result);
if (c!=null) {
Set cmrFields = ((EjbCMPEntityDescriptor)descriptor).getPersistenceDescriptor().getRelationships();
Iterator cmrIterator = cmrFields.iterator();
if (cmrIterator.hasNext()) {
while (cmrIterator.hasNext()) {
RelationshipDescriptor cmfDescriptor = (RelationshipDescriptor) cmrIterator.next();
{
// test if this bean is the source in this relationship
RelationRoleDescriptor role = cmfDescriptor.getSource();
if (role.getOwner().equals(descriptor) && role.getCMRField()!=null) {
found = true;
if (!runIndividualCmrTest(descriptor, role, c, result)) {
oneFailed = true;
}
}
}
// we need to test for both source and sink because of self references
{
// test if this bean is the sink in this relationship
RelationRoleDescriptor role = cmfDescriptor.getSink();
if (role.getOwner().equals(descriptor) && role.getCMRField()!=null) {
found = true;
if (!runIndividualCmrTest(descriptor, role, c, result)) {
oneFailed = true;
}
}
}
}
if (oneFailed)
result.setStatus(Result.FAILED);
else if (found == false) {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.CmrFieldTest.notApplicable",
"Not Applicable : The EJB has no CMR fields declared",
new Object[] {}));
}
else
result.setStatus(Result.PASSED);
}
else {
result.addNaDetails(smh.getLocalString
("tests.componentNameConstructor",
"For [ {0} ]",
new Object[] {compName.toString()}));
result.notApplicable(smh.getLocalString
("com.sun.enterprise.tools.verifier.tests.ejb.entity.cmp2.CmrFieldTest.notApplicable",
"Not Applicable : The EJB has no CMR fields declared",
new Object[] {}));
}
}
return result;