Search in sources :

Example 11 with ArgType

use of org.apache.cxf.binding.corba.wsdl.ArgType in project cxf by apache.

the class CorbaStreamOutEndingInterceptor method handleInBoundMessage.

private void handleInBoundMessage(CorbaMessage message, BindingOperationInfo boi) {
    OperationInfo opInfo = boi.getOperationInfo();
    OperationType opType = boi.getExtensor(OperationType.class);
    List<ParamType> paramTypes = opType.getParam();
    MessageInfo msgInInfo = opInfo.getInput();
    String wrapNSUri = null;
    boolean wrap = false;
    if (boi.isUnwrappedCapable()) {
        wrap = true;
        if (msgInInfo != null) {
            wrapNSUri = getWrappedParamNamespace(msgInInfo);
            if (!CorbaUtils.isElementFormQualified(service, wrapNSUri)) {
                wrapNSUri = "";
            }
        }
    }
    CorbaStreamWriter writer = (CorbaStreamWriter) message.getContent(XMLStreamWriter.class);
    CorbaObjectHandler[] objs = writer.getCorbaObjects();
    int count = 0;
    int msgIndex = 0;
    ArgType returnParam = opType.getReturn();
    if (returnParam != null) {
        CorbaObjectHandler obj = objs[count++];
        QName retName = obj.getName();
        CorbaStreamable streamable = message.createStreamableObject(obj, retName);
        message.setStreamableReturn(streamable);
    }
    for (Iterator<ParamType> iter = paramTypes.iterator(); iter.hasNext(); ) {
        ParamType param = iter.next();
        QName idlType = param.getIdltype();
        QName paramName;
        final CorbaObjectHandler obj;
        if (param.getMode().equals(ModeType.IN)) {
            if (wrap) {
                paramName = new QName(wrapNSUri, param.getName());
            } else {
                paramName = getMessageParamQName(msgInInfo, param.getName(), msgIndex);
            }
            obj = CorbaHandlerUtils.initializeObjectHandler(orb, paramName, idlType, typeMap, service);
            msgIndex++;
        } else {
            obj = objs[count++];
            paramName = obj.getName();
        }
        CorbaStreamable streamable = message.createStreamableObject(obj, paramName);
        ModeType paramMode = param.getMode();
        if ("in".equals(paramMode.value())) {
            streamable.setMode(org.omg.CORBA.ARG_IN.value);
        } else if ("inout".equals(paramMode.value())) {
            streamable.setMode(org.omg.CORBA.ARG_INOUT.value);
        } else if ("out".equals(paramMode.value())) {
            streamable.setMode(org.omg.CORBA.ARG_OUT.value);
        }
        message.addStreamableArgument(streamable);
    }
}
Also used : BindingOperationInfo(org.apache.cxf.service.model.BindingOperationInfo) OperationInfo(org.apache.cxf.service.model.OperationInfo) ArgType(org.apache.cxf.binding.corba.wsdl.ArgType) CorbaStreamable(org.apache.cxf.binding.corba.CorbaStreamable) QName(javax.xml.namespace.QName) ParamType(org.apache.cxf.binding.corba.wsdl.ParamType) MessageInfo(org.apache.cxf.service.model.MessageInfo) CorbaStreamWriter(org.apache.cxf.binding.corba.runtime.CorbaStreamWriter) XMLStreamWriter(javax.xml.stream.XMLStreamWriter) CorbaObjectHandler(org.apache.cxf.binding.corba.types.CorbaObjectHandler) ModeType(org.apache.cxf.binding.corba.wsdl.ModeType) OperationType(org.apache.cxf.binding.corba.wsdl.OperationType)

Example 12 with ArgType

use of org.apache.cxf.binding.corba.wsdl.ArgType in project cxf by apache.

the class CorbaStreamWriter method setCurrentTypeListener.

protected void setCurrentTypeListener(QName name) throws XMLStreamException {
    ArgType param = params.get(paramCounter);
    QName idlType = param.getIdltype();
    if (!skipWrap || (name.getLocalPart().equals(param.getName()))) {
        currentTypeListener = CorbaHandlerUtils.getTypeListener(name, idlType, typeMap, orb, serviceInfo);
        currentTypeListener.setNamespaceContext(ctx);
        listeners[paramCounter] = currentTypeListener;
        paramCounter++;
    } else {
        throw new XMLStreamException("Expected element not found: " + param.getName() + " (Found " + name.getLocalPart() + ")");
    }
}
Also used : ArgType(org.apache.cxf.binding.corba.wsdl.ArgType) XMLStreamException(javax.xml.stream.XMLStreamException) QName(javax.xml.namespace.QName)

Aggregations

ArgType (org.apache.cxf.binding.corba.wsdl.ArgType)12 ParamType (org.apache.cxf.binding.corba.wsdl.ParamType)8 OperationType (org.apache.cxf.binding.corba.wsdl.OperationType)6 CorbaStreamWriter (org.apache.cxf.binding.corba.runtime.CorbaStreamWriter)4 ArrayList (java.util.ArrayList)3 QName (javax.xml.namespace.QName)3 XMLStreamWriter (javax.xml.stream.XMLStreamWriter)2 CorbaStreamable (org.apache.cxf.binding.corba.CorbaStreamable)2 CorbaObjectHandler (org.apache.cxf.binding.corba.types.CorbaObjectHandler)2 ModeType (org.apache.cxf.binding.corba.wsdl.ModeType)2 RaisesType (org.apache.cxf.binding.corba.wsdl.RaisesType)2 BindingOperationInfo (org.apache.cxf.service.model.BindingOperationInfo)2 MessageInfo (org.apache.cxf.service.model.MessageInfo)2 OperationInfo (org.apache.cxf.service.model.OperationInfo)2 ToolException (org.apache.cxf.tools.common.ToolException)2 IdlString (org.apache.cxf.tools.corba.common.idltypes.IdlString)2 BindingFault (javax.wsdl.BindingFault)1 BindingOperation (javax.wsdl.BindingOperation)1 Fault (javax.wsdl.Fault)1 Message (javax.wsdl.Message)1