FileDocCategorySizeDatePackage
HandlerPortNameCheck.javaAPI DocGlassfish v2 API5393Fri May 04 22:34:18 BST 2007com.sun.enterprise.tools.verifier.tests.wsclients

HandlerPortNameCheck

public class HandlerPortNameCheck extends WSClientTest implements WSClientCheck

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

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


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

        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
                    (getClass().getName() + ".failed",
                     "The Port Name(s) in the Handler Chain are invalid."));
               }
               else {
                  //result.pass
                  result.addGoodDetails(smh.getLocalString ("tests.componentNameConstructor",
                                   "For [ {0} ]", new Object[] {compName.toString()}));
                  result.passed(smh.getLocalString (getClass().getName()+ ".passed",
                  "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 (getClass().getName() + ".notapp",
           "Not Applicable since No handlers defined in this WebService."));
        }

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


       Collection endPoints = descriptor.getPortsInfo();
       Vector<String>  ret = new Vector<String>();
       for (Iterator it = endPoints.iterator(); it.hasNext();) {
           ret.add(((ServiceRefPortInfo)it.next()).getPortComponentLinkName());
       }
    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;