FileDocCategorySizeDatePackage
HandlerPortNameCheck.javaAPI DocGlassfish v2 API5706Fri May 04 22:34:16 BST 2007com.sun.enterprise.tools.verifier.tests.webservices

HandlerPortNameCheck

public class HandlerPortNameCheck extends WSTest implements WSCheck

Fields Summary
Constructors Summary
Methods Summary
public Resultcheck(WebServiceEndpoint descriptor)

param
descriptor the WebServices descriptor
return
Result the results for this assertion


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

        boolean pass = true;

        if (descriptor.hasHandlers()) {
           Collection allPortNames = getAllPortNamesInService(descriptor);
           List handlerChain = descriptor.getHandlerChain();
           for (Iterator it = handlerChain.iterator(); it.hasNext();) {
               Collection c = ((WebServiceHandler)it.next()).getPortNames();
               Collection invalid = getInvalidHandlerPortNames(c,allPortNames);
               if (invalid.size() > 0) {
                  //result.fail
                  result.addErrorDetails(smh.getLocalString ("tests.componentNameConstructor",
                                   "For [ {0} ]", new Object[] {compName.toString()}));
                 result.failed(smh.getLocalString
                  ("com.sun.enterprise.tools.verifier.tests.webservices.failed",
                   "[{0}]", new Object[] {"The Port Name(s) in the Handler Chain are invalid"}));

                  pass = false;
               }
               else {
                  //result.pass
                  result.addGoodDetails(smh.getLocalString
                                  ("tests.componentNameConstructor",
                                   "For [ {0} ]",
                                   new Object[] {compName.toString()}));
                  result.passed(smh.getLocalString (
                  "com.sun.enterprise.tools.verifier.tests.webservices.passed", "[{0}]",
                  new Object[] {"Port Name(s) in the Handler-Chain are valid"}));

               }
           }
        }
        else {
         // result.NotApplicable
         result.addNaDetails(smh.getLocalString
            ("tests.componentNameConstructor", "For [ {0} ]",
             new Object[] {compName.toString()}));
         result.notApplicable(smh.getLocalString
          ("com.sun.enterprise.tools.verifier.tests.webservices.notapp",
           "[{0}]", new Object[] {"Not Applicable since No handlers defined in this WebService"}));

        }

        return result;
    
private java.util.CollectiongetAllPortNamesInService(WebServiceEndpoint descriptor)


       Collection endPoints = descriptor.getWebService().getEndpoints();
       Vector<String> ret = new Vector<String>();
       for (Iterator it = endPoints.iterator(); it.hasNext();) {
           ret.add(((WebServiceEndpoint)it.next()).getEndpointName());
       }
    return ret;    
   
private java.util.CollectiongetInvalidHandlerPortNames(java.util.Collection hpNames, java.util.Collection allPortNames)

       
      Vector<String> ret = new Vector<String>();
      for (Iterator it = hpNames.iterator(); it.hasNext();) {
          String currName = (String)it.next();
          if (!allPortNames.contains(currName)) 
              ret.add(currName);
      }
    return ret;