FileDocCategorySizeDatePackage
PrimaryKeyClassElement.javaAPI DocGlassfish v2 API6808Fri May 04 22:33:50 BST 2007com.sun.enterprise.tools.verifier.tests.ejb.entity.primarykeyclass

PrimaryKeyClassElement

public class PrimaryKeyClassElement extends com.sun.enterprise.tools.verifier.tests.ejb.EjbTest implements com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck
Entity bean's Primary Key Class test. If the enterprise bean is a Entity Bean, the Bean provider specifies the fully qualified name of the Entity bean's primary key class in the "primary-class" element. The Bean provider 'must' specify the primary key class for an Entity with bean managed persistence, and 'may' (but is not required to) specify the primary key class for an Entity with Container-managed persistence.

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(com.sun.enterprise.deployment.EjbDescriptor descriptor)
Entity bean's Primary Key Class test. If the enterprise bean is a Entity Bean, the Bean provider specifies the fully qualified name of the Entity bean's primary key class in the "primary-class" element. The Bean provider 'must' specify the primary key class for an Entity with bean managed persistence, and 'may' (but is not required to) specify the primary key class for an Entity with Container-managed persistence.

param
descriptor the Enterprise Java Bean deployment descriptor
return
Result the results for this assertion


	Result result = getInitializedResult();
	ComponentNameConstructor compName = getVerifierContext().getComponentNameConstructor();

	if (descriptor instanceof EjbEntityDescriptor) {
	    String persistence = 
		((EjbEntityDescriptor)descriptor).getPersistenceType();
	    if (EjbEntityDescriptor.BEAN_PERSISTENCE.equals(persistence)) {		
        logger.log(Level.FINE, getClass().getName() + ".debug1",
                new Object[] {descriptor.getName(), "bean"});
		String primkey =
		    ((EjbEntityDescriptor)descriptor).getPrimaryKeyClassName();

		if (!primkey.equals("java.lang.String")) {
		    try {
			Class c = Class.forName(primkey, false, getVerifierContext().getClassLoader());

			result.addGoodDetails(smh.getLocalString
					      ("tests.componentNameConstructor",
					       "For [ {0} ]",
					       new Object[] {compName.toString()}));
			result.passed(smh.getLocalString
				      (getClass().getName() + ".passed",
				       "Primary Key Class [ {0} ] exist and is loadable",
				       new Object[] {primkey}));
		    } catch (Exception e) {
			Verifier.debug(e);
			result.addErrorDetails(smh.getLocalString
					       ("tests.componentNameConstructor",
						"For [ {0} ]",
						new Object[] {compName.toString()}));
			result.failed(smh.getLocalString
				      (getClass().getName() + ".failedException",
				       "Error: Loading Primary Key Class [ {0} ]",
				       new Object[] {primkey}));
			return result;
		    }
		} else {
		    result.addGoodDetails(smh.getLocalString
					  ("tests.componentNameConstructor",
					   "For [ {0} ]",
					   new Object[] {compName.toString()}));

		    result.passed(smh.getLocalString
				  (getClass().getName() + ".passed1",
				   "Primary Key Class is [ {0} ]",
				   new Object[] {primkey}));
		}

		return result;

	    } else if (EjbEntityDescriptor.CONTAINER_PERSISTENCE.equals(persistence)) {
		result.addNaDetails(smh.getLocalString
				    ("tests.componentNameConstructor",
				     "For [ {0} ]",
				     new Object[] {compName.toString()}));
		result.notApplicable(smh.getLocalString
				     (getClass().getName() + ".notApplicable1",
				      "Entity Bean [ {0} ] with [ {1} ] managed persistence, primkey optional.",
				      new Object[] {descriptor.getName(),persistence}));
		return result;
	    } 
	    else {
		result.addNaDetails(smh.getLocalString
				    ("tests.componentNameConstructor",
				     "For [ {0} ]",
				     new Object[] {compName.toString()}));
		result.notApplicable(smh.getLocalString
				     (getClass().getName() + ".notApplicable2",
				      "Expected [ {0} ] managed persistence, but [ {1} ] bean has [ {2} ] managed persistence.",
				      new Object[] {EjbEntityDescriptor.BEAN_PERSISTENCE,descriptor.getName(),persistence}));
		return result;
	    }
	} else {
	    result.addNaDetails(smh.getLocalString
				("tests.componentNameConstructor",
				 "For [ {0} ]",
				 new Object[] {compName.toString()}));
	    result.notApplicable(smh.getLocalString
				 (getClass().getName() + ".notApplicable",
				  "[ {0} ] expected {1} bean, but called with {2} bean.",
				  new Object[] {getClass(),"Entity","Session"}));
	    return result;
	}