FileDocCategorySizeDatePackage
EjbQLFromCmpEntityDescriptor.javaAPI DocGlassfish v2 API7620Fri May 04 22:33:48 BST 2007com.sun.enterprise.tools.verifier.tests.ejb.entity.ejbql

EjbQLFromCmpEntityDescriptor

public class EjbQLFromCmpEntityDescriptor extends com.sun.enterprise.tools.verifier.tests.ejb.EjbTest implements com.sun.enterprise.tools.verifier.tests.ejb.EjbCheck
This test verifies whether EJB QLs specified under element have any syntax or semantic errors.
author
Qingqing Ouyang
version

(Omit source code)

Fields Summary
Constructors Summary
Methods Summary
public com.sun.enterprise.tools.verifier.Resultcheck(com.sun.enterprise.deployment.EjbDescriptor descriptor)
Implements the check on EJB QL's syntax and semantics.

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

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

        if (descriptor instanceof IASEjbCMPEntityDescriptor) {
            Collection col = null;
            if(getVerifierContext().getJDOException()!=null){
                result.addErrorDetails(smh.getLocalString
                            ("tests.componentNameConstructor",
                                    "For [ {0} ]",
                                    new Object[] {compName.toString()}));
                result.failed (smh.getLocalString(getClass().getName() + ".failed1",
                            "Error: Exception [ {0} ] while initialising JDO code generator.",
                            new Object[] {getVerifierContext().getJDOException().getMessage()}));

                return result;
            }else{
                try{
                    JDOCodeGenerator jdc= getVerifierContext().getJDOCodeGenerator();
                    col = jdc.validate((IASEjbCMPEntityDescriptor)descriptor);
                }catch(Exception ex){
                    result.addErrorDetails(smh.getLocalString
                            ("tests.componentNameConstructor",
                                    "For [ {0} ]",
                                    new Object[] {compName.toString()}));
                    result.failed (smh.getLocalString(getClass().getName() + ".failed",
                            "Error: Exception [ {0} ] when calling JDOCodeGenerator.validate().",
                            new Object[] {ex.getMessage()}));
                    return result;
                }
            }
            if (col.isEmpty()){
              result.addGoodDetails(smh.getLocalString
                                       ("tests.componentNameConstructor",
                                        "For [ {0} ]",
                                        new Object[] {compName.toString()}));
              result.passed(smh.getLocalString(getClass().getName() + ".passed",
                            "Syntax and Semantics of EJBQL Queries (if any) are correct."));

            }else{
               // collect all the EJBQL errors
               String allErrors = null;
               Iterator it = col.iterator();
               while (it.hasNext()) {
                  Exception e = (Exception)it.next();
                  if (e instanceof EJBQLException) {
                     allErrors = e.getMessage() + "\n\n";
                  }
               }

               if (allErrors != null) {
                 result.addErrorDetails(smh.getLocalString
                                       ("tests.componentNameConstructor",
                                        "For [ {0} ]",
                                        new Object[] {compName.toString()}));
                 result.failed(smh.getLocalString(getClass().getName() + ".parseError",
                            "Error: Entity bean [ {0} ] has the following EJBQL error(s) [ {1} ]."
                            , new Object[] {descriptor.getEjbClassName(), "\n" + allErrors} ));

               }
               else {
                 result.addGoodDetails(smh.getLocalString
                                       ("tests.componentNameConstructor",
                                        "For [ {0} ]",
                                        new Object[] {compName.toString()}));
                 result.passed(smh.getLocalString(getClass().getName() + ".passed",
                            "Syntax and Semantics of EJBQL Queries (if any) are correct."));
               }
            }

	} else {
	    result.addNaDetails(smh.getLocalString
				       ("tests.componentNameConstructor",
					"For [ {0} ]",
					new Object[] {compName.toString()}));
	    result.notApplicable(
                    smh.getLocalString(getClass().getName() + ".notApplicable",
                            "Not applicable: Test only applies to container managed EJBs"));
	}
    } catch(Exception e) {
      result.addErrorDetails(smh.getLocalString
                                       ("tests.componentNameConstructor",
                                        "For [ {0} ]",
                                        new Object[] {compName.toString()}));
      result.failed (smh.getLocalString(getClass().getName() + ".failed",
                            "Error: Exception [ {0} ] when calling JDOCodeGenerator.validate().",
                            new Object[] {e.getMessage()}));
    }
      return result;