Java源码示例:com.sun.xml.internal.ws.api.model.wsdl.editable.EditableWSDLBoundOperation

示例1
private void parseInputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationInputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setInputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.INPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getInputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.INPUT);
        } else {
            extensionFacade.bindingOperationInputElements(bindingOp, reader);
        }
    }
}
 
示例2
private void parseOutputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationOutputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setOutputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.OUTPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getOutputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.OUTPUT);
        } else {
            extensionFacade.bindingOperationOutputElements(bindingOp, reader);
        }
    }
}
 
示例3
private void parseOutputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationOutputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setOutputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.OUTPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getOutputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.OUTPUT);
        } else {
            extensionFacade.bindingOperationOutputElements(bindingOp, reader);
        }
    }
}
 
示例4
private void parseInputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationInputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setInputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.INPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getInputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.INPUT);
        } else {
            extensionFacade.bindingOperationInputElements(bindingOp, reader);
        }
    }
}
 
示例5
private void parseOutputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationOutputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setOutputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.OUTPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getOutputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.OUTPUT);
        } else {
            extensionFacade.bindingOperationOutputElements(bindingOp, reader);
        }
    }
}
 
示例6
private void parseInputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationInputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setInputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.INPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getInputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.INPUT);
        } else {
            extensionFacade.bindingOperationInputElements(bindingOp, reader);
        }
    }
}
 
示例7
private void parseOutputBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    boolean bodyFound = false;
    extensionFacade.bindingOperationOutputAttributes(bindingOp, reader);
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if ((SOAPConstants.QNAME_BODY.equals(name) || SOAPConstants.QNAME_SOAP12BODY.equals(name)) && !bodyFound) {
            bodyFound = true;
            bindingOp.setOutputExplicitBodyParts(parseSOAPBodyBinding(reader, bindingOp, BindingMode.OUTPUT));
            goToEnd(reader);
        } else if ((SOAPConstants.QNAME_HEADER.equals(name) || SOAPConstants.QNAME_SOAP12HEADER.equals(name))) {
            parseSOAPHeaderBinding(reader, bindingOp.getOutputParts());
        } else if (MIMEConstants.QNAME_MULTIPART_RELATED.equals(name)) {
            parseMimeMultipartBinding(reader, bindingOp, BindingMode.OUTPUT);
        } else {
            extensionFacade.bindingOperationOutputElements(bindingOp, reader);
        }
    }
}
 
示例8
private static void parseMIMEPart(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    boolean bodyFound = false;
    Map<String, ParameterBinding> parts = null;
    if (mode == BindingMode.INPUT) {
        parts = op.getInputParts();
    } else if (mode == BindingMode.OUTPUT) {
        parts = op.getOutputParts();
    } else if (mode == BindingMode.FAULT) {
        parts = op.getFaultParts();
    }
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if (SOAPConstants.QNAME_BODY.equals(name) && !bodyFound) {
            bodyFound = true;
            parseSOAPBodyBinding(reader, op, mode);
            XMLStreamReaderUtil.next(reader);
        } else if (SOAPConstants.QNAME_HEADER.equals(name)) {
            bodyFound = true;
            parseSOAPHeaderBinding(reader, parts);
            XMLStreamReaderUtil.next(reader);
        } else if (MIMEConstants.QNAME_CONTENT.equals(name)) {
            String part = reader.getAttributeValue(null, "part");
            String type = reader.getAttributeValue(null, "type");
            if ((part == null) || (type == null)) {
                XMLStreamReaderUtil.skipElement(reader);
                continue;
            }
            ParameterBinding sb = ParameterBinding.createAttachment(type);
            if (parts != null && sb != null && part != null)
                parts.put(part, sb);
            XMLStreamReaderUtil.next(reader);
        } else {
            XMLStreamReaderUtil.skipElement(reader);
        }
    }
}
 
示例9
public void freeze() {
    portType = owner.getPortType(portTypeName);
    if(portType == null){
        throw new LocatableWebServiceException(
                ClientMessages.UNDEFINED_PORT_TYPE(portTypeName), getLocation());
    }
    portType.freeze();

    for (EditableWSDLBoundOperation op : bindingOperations.values()) {
        op.freeze(owner);
    }

    freezePayloadMap();
    owner.finalizeRpcLitBinding(this);
}
 
示例10
public EditableWSDLBoundOperation getOperation(String namespaceUri, String localName) {
    if(namespaceUri==null && localName == null)
        return emptyPayloadOperation;
    else{
        return payloadMap.get((namespaceUri==null)?"":namespaceUri,localName);
    }
}
 
示例11
public void freeze() {
    portType = owner.getPortType(portTypeName);
    if(portType == null){
        throw new LocatableWebServiceException(
                ClientMessages.UNDEFINED_PORT_TYPE(portTypeName), getLocation());
    }
    portType.freeze();

    for (EditableWSDLBoundOperation op : bindingOperations.values()) {
        op.freeze(owner);
    }

    freezePayloadMap();
    owner.finalizeRpcLitBinding(this);
}
 
示例12
private static void parseMimeMultipartBinding(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if (MIMEConstants.QNAME_PART.equals(name)) {
            parseMIMEPart(reader, op, mode);
        } else {
            XMLStreamReaderUtil.skipElement(reader);
        }
    }
}
 
示例13
private static void parseMimeMultipartBinding(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if (MIMEConstants.QNAME_PART.equals(name)) {
            parseMIMEPart(reader, op, mode);
        } else {
            XMLStreamReaderUtil.skipElement(reader);
        }
    }
}
 
示例14
private void parseFaultBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    String faultName = ParserUtil.getMandatoryNonEmptyAttribute(reader, "name");
    EditableWSDLBoundFault wsdlBoundFault = new WSDLBoundFaultImpl(reader, faultName, bindingOp);
    bindingOp.addFault(wsdlBoundFault);

    extensionFacade.bindingOperationFaultAttributes(wsdlBoundFault, reader);

    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        extensionFacade.bindingOperationFaultElements(wsdlBoundFault, reader);
    }
}
 
示例15
/**
 * Gets the {@link ParameterBinding} for a given operation, part name and the direction - IN/OUT
 *
 * @param operation wsdl:[email protected] value. Must be non-null.
 * @param part      wsdl:[email protected] such as value of soap:[email protected] Must be non-null.
 * @param mode      {@link Mode#IN} or {@link Mode#OUT}. Must be non-null.
 * @return null if the binding could not be resolved for the part.
 */
public ParameterBinding getBinding(QName operation, String part, Mode mode) {
    EditableWSDLBoundOperation op = get(operation);
    if (op == null) {
        //TODO throw exception
        return null;
    }
    if ((Mode.IN == mode) || (Mode.INOUT == mode))
        return op.getInputBinding(part);
    else
        return op.getOutputBinding(part);
}
 
示例16
public void freeze(EditableWSDLBoundOperation root) {
    assert root != null;
    EditableWSDLOperation op = root.getOperation();
    if (op != null) {
        for (EditableWSDLFault f : op.getFaults()) {
            if (f.getName().equals(name)) {
                this.fault = f;
                break;
            }
        }
    }
}
 
示例17
public void freeze() {
    portType = owner.getPortType(portTypeName);
    if(portType == null){
        throw new LocatableWebServiceException(
                ClientMessages.UNDEFINED_PORT_TYPE(portTypeName), getLocation());
    }
    portType.freeze();

    for (EditableWSDLBoundOperation op : bindingOperations.values()) {
        op.freeze(owner);
    }

    freezePayloadMap();
    owner.finalizeRpcLitBinding(this);
}
 
示例18
public void freeze(EditableWSDLBoundOperation root) {
    assert root != null;
    EditableWSDLOperation op = root.getOperation();
    if (op != null) {
        for (EditableWSDLFault f : op.getFaults()) {
            if (f.getName().equals(name)) {
                this.fault = f;
                break;
            }
        }
    }
}
 
示例19
public EditableWSDLBoundOperation getOperation(String namespaceUri, String localName) {
    if(namespaceUri==null && localName == null)
        return emptyPayloadOperation;
    else{
        return payloadMap.get((namespaceUri==null)?"":namespaceUri,localName);
    }
}
 
示例20
private static boolean parseSOAPBodyBinding(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    String namespace = reader.getAttributeValue(null, "namespace");
    if (mode == BindingMode.INPUT) {
        op.setRequestNamespace(namespace);
        return parseSOAPBodyBinding(reader, op.getInputParts());
    }
    //resp
    op.setResponseNamespace(namespace);
    return parseSOAPBodyBinding(reader, op.getOutputParts());
}
 
示例21
private static void parseMimeMultipartBinding(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if (MIMEConstants.QNAME_PART.equals(name)) {
            parseMIMEPart(reader, op, mode);
        } else {
            XMLStreamReaderUtil.skipElement(reader);
        }
    }
}
 
示例22
public EditableWSDLBoundOperation getOperation(String namespaceUri, String localName) {
    if(namespaceUri==null && localName == null)
        return emptyPayloadOperation;
    else{
        return payloadMap.get((namespaceUri==null)?"":namespaceUri,localName);
    }
}
 
示例23
private static boolean parseSOAPBodyBinding(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    String namespace = reader.getAttributeValue(null, "namespace");
    if (mode == BindingMode.INPUT) {
        op.setRequestNamespace(namespace);
        return parseSOAPBodyBinding(reader, op.getInputParts());
    }
    //resp
    op.setResponseNamespace(namespace);
    return parseSOAPBodyBinding(reader, op.getOutputParts());
}
 
示例24
public EditableWSDLBoundOperation getOperation(String namespaceUri, String localName) {
    if(namespaceUri==null && localName == null)
        return emptyPayloadOperation;
    else{
        return payloadMap.get((namespaceUri==null)?"":namespaceUri,localName);
    }
}
 
示例25
private static void parseMIMEPart(XMLStreamReader reader, EditableWSDLBoundOperation op, BindingMode mode) {
    boolean bodyFound = false;
    Map<String, ParameterBinding> parts = null;
    if (mode == BindingMode.INPUT) {
        parts = op.getInputParts();
    } else if (mode == BindingMode.OUTPUT) {
        parts = op.getOutputParts();
    } else if (mode == BindingMode.FAULT) {
        parts = op.getFaultParts();
    }
    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        QName name = reader.getName();
        if (SOAPConstants.QNAME_BODY.equals(name) && !bodyFound) {
            bodyFound = true;
            parseSOAPBodyBinding(reader, op, mode);
            XMLStreamReaderUtil.next(reader);
        } else if (SOAPConstants.QNAME_HEADER.equals(name)) {
            bodyFound = true;
            parseSOAPHeaderBinding(reader, parts);
            XMLStreamReaderUtil.next(reader);
        } else if (MIMEConstants.QNAME_CONTENT.equals(name)) {
            String part = reader.getAttributeValue(null, "part");
            String type = reader.getAttributeValue(null, "type");
            if ((part == null) || (type == null)) {
                XMLStreamReaderUtil.skipElement(reader);
                continue;
            }
            ParameterBinding sb = ParameterBinding.createAttachment(type);
            if (parts != null && sb != null && part != null)
                parts.put(part, sb);
            XMLStreamReaderUtil.next(reader);
        } else {
            XMLStreamReaderUtil.skipElement(reader);
        }
    }
}
 
示例26
private void parseFaultBinding(XMLStreamReader reader, EditableWSDLBoundOperation bindingOp) {
    String faultName = ParserUtil.getMandatoryNonEmptyAttribute(reader, "name");
    EditableWSDLBoundFault wsdlBoundFault = new WSDLBoundFaultImpl(reader, faultName, bindingOp);
    bindingOp.addFault(wsdlBoundFault);

    extensionFacade.bindingOperationFaultAttributes(wsdlBoundFault, reader);

    while (XMLStreamReaderUtil.nextElementContent(reader) != XMLStreamConstants.END_ELEMENT) {
        extensionFacade.bindingOperationFaultElements(wsdlBoundFault, reader);
    }
}
 
示例27
public void freeze() {
    portType = owner.getPortType(portTypeName);
    if(portType == null){
        throw new LocatableWebServiceException(
                ClientMessages.UNDEFINED_PORT_TYPE(portTypeName), getLocation());
    }
    portType.freeze();

    for (EditableWSDLBoundOperation op : bindingOperations.values()) {
        op.freeze(owner);
    }

    freezePayloadMap();
    owner.finalizeRpcLitBinding(this);
}
 
示例28
/**
 * Gets the {@link ParameterBinding} for a given operation, part name and the direction - IN/OUT
 *
 * @param operation wsdl:[email protected] value. Must be non-null.
 * @param part      wsdl:[email protected] such as value of soap:[email protected] Must be non-null.
 * @param mode      {@link Mode#IN} or {@link Mode#OUT}. Must be non-null.
 * @return null if the binding could not be resolved for the part.
 */
public ParameterBinding getBinding(QName operation, String part, Mode mode) {
    EditableWSDLBoundOperation op = get(operation);
    if (op == null) {
        //TODO throw exception
        return null;
    }
    if ((Mode.IN == mode) || (Mode.INOUT == mode))
        return op.getInputBinding(part);
    else
        return op.getOutputBinding(part);
}
 
示例29
public void freeze(EditableWSDLBoundOperation root) {
    assert root != null;
    EditableWSDLOperation op = root.getOperation();
    if (op != null) {
        for (EditableWSDLFault f : op.getFaults()) {
            if (f.getName().equals(name)) {
                this.fault = f;
                break;
            }
        }
    }
}
 
示例30
public void freeze() {
    portType = owner.getPortType(portTypeName);
    if(portType == null){
        throw new LocatableWebServiceException(
                ClientMessages.UNDEFINED_PORT_TYPE(portTypeName), getLocation());
    }
    portType.freeze();

    for (EditableWSDLBoundOperation op : bindingOperations.values()) {
        op.freeze(owner);
    }

    freezePayloadMap();
    owner.finalizeRpcLitBinding(this);
}