/**
  * Utility method to create the operation name -> request type mapping based on the service
  * operation desc information
  *
  * @param operationServiceDescs : service operation descs
  * @return Map of operation name and operation request type
  */
 private Map<String, ServiceOperationParamDesc> createOpRequestTypeDesc(
     Collection<ServiceOperationDesc> operationServiceDescs) {
   Map<String, ServiceOperationParamDesc> opReqTypeMap =
       new HashMap<String, ServiceOperationParamDesc>();
   for (ServiceOperationDesc opDesc : operationServiceDescs) {
     opReqTypeMap.put(opDesc.getName(), opDesc.getRequestType());
   }
   return opReqTypeMap;
 }
  private RequestPatternMatcher<ServiceOperationDesc> createOperationsMatcher(
      Collection<ServiceOperationDesc> operations) throws ServiceException {
    RequestPatternMatcher<ServiceOperationDesc> result =
        new RequestPatternMatcher<ServiceOperationDesc>(true);

    for (ServiceOperationDesc op : operations) {
      result.addHeaderPattern(SOAHeaders.SERVICE_OPERATION_NAME, op.getName(), op);
    }

    return result;
  }