private BindingOperation getBindingOperation()

in taverna-wsdl-generic/src/main/java/org/apache/taverna/wsdl/parser/WSDL20Parser.java [264:300]


    private BindingOperation getBindingOperation(String portName, String operationName) throws UnknownOperationException {
        
        Binding[] bindings = null;
        if (portName == null) {
            bindings = description.getBindings();
        } else {
            loop:
            for (Service service : description.getServices()) {
                for (Endpoint endpoint : service.getEndpoints()) {
                    final NCName endpointName = endpoint.getName();
                    if (endpointName != null && endpointName.toString().equals(portName)) {
                        Binding binding = endpoint.getBinding();
                        if (binding != null) {
                            bindings = new Binding[] {binding};
                            break loop;
                        }
                    }
                }
            }
            if (bindings == null) {
                bindings = description.getBindings();
            }
        }

        if (bindings != null) {
            for (Binding binding : bindings) {
                for (BindingOperation bindingOperation : binding.getBindingOperations()) {
                    InterfaceOperation interfaceOperation = bindingOperation.getInterfaceOperation();
                    if (interfaceOperation != null && operationName.equals(interfaceOperation.getName().getLocalPart())) {
                        return bindingOperation;
                    }
                }
            }
        }

        throw new UnknownOperationException("Unknown operation: " + operationName);
    }