Search in sources :

Example 1 with WsdlReturnValueMapping

use of org.apache.openejb.jee.WsdlReturnValueMapping in project tomee by apache.

the class ServiceEndpointMethodMapping$JAXB method _write.

public static final void _write(final XoXMLStreamWriter writer, final ServiceEndpointMethodMapping serviceEndpointMethodMapping, RuntimeContext context) throws Exception {
    if (serviceEndpointMethodMapping == null) {
        writer.writeXsiNil();
        return;
    }
    if (context == null) {
        context = new RuntimeContext();
    }
    final String prefix = writer.getUniquePrefix("http://java.sun.com/xml/ns/javaee");
    if (ServiceEndpointMethodMapping.class != serviceEndpointMethodMapping.getClass()) {
        context.unexpectedSubclass(writer, serviceEndpointMethodMapping, ServiceEndpointMethodMapping.class);
        return;
    }
    context.beforeMarshal(serviceEndpointMethodMapping, LifecycleCallback.NONE);
    // ATTRIBUTE: id
    final String idRaw = serviceEndpointMethodMapping.id;
    if (idRaw != null) {
        String id = null;
        try {
            id = Adapters.collapsedStringAdapterAdapter.marshal(idRaw);
        } catch (final Exception e) {
            context.xmlAdapterError(serviceEndpointMethodMapping, "id", CollapsedStringAdapter.class, String.class, String.class, e);
        }
        writer.writeAttribute("", "", "id", id);
    }
    // ELEMENT: javaMethodName
    final String javaMethodNameRaw = serviceEndpointMethodMapping.javaMethodName;
    String javaMethodName = null;
    try {
        javaMethodName = Adapters.collapsedStringAdapterAdapter.marshal(javaMethodNameRaw);
    } catch (final Exception e) {
        context.xmlAdapterError(serviceEndpointMethodMapping, "javaMethodName", CollapsedStringAdapter.class, String.class, String.class, e);
    }
    if (javaMethodName != null) {
        writer.writeStartElement(prefix, "java-method-name", "http://java.sun.com/xml/ns/javaee");
        writer.writeCharacters(javaMethodName);
        writer.writeEndElement();
    } else {
        context.unexpectedNullValue(serviceEndpointMethodMapping, "javaMethodName");
    }
    // ELEMENT: wsdlOperation
    final String wsdlOperationRaw = serviceEndpointMethodMapping.wsdlOperation;
    String wsdlOperation = null;
    try {
        wsdlOperation = Adapters.collapsedStringAdapterAdapter.marshal(wsdlOperationRaw);
    } catch (final Exception e) {
        context.xmlAdapterError(serviceEndpointMethodMapping, "wsdlOperation", CollapsedStringAdapter.class, String.class, String.class, e);
    }
    if (wsdlOperation != null) {
        writer.writeStartElement(prefix, "wsdl-operation", "http://java.sun.com/xml/ns/javaee");
        writer.writeCharacters(wsdlOperation);
        writer.writeEndElement();
    } else {
        context.unexpectedNullValue(serviceEndpointMethodMapping, "wsdlOperation");
    }
    // ELEMENT: wrappedElement
    final Object wrappedElement = serviceEndpointMethodMapping.wrappedElement;
    if (wrappedElement != null) {
        writer.writeStartElement(prefix, "wrapped-element", "http://java.sun.com/xml/ns/javaee");
        writer.writeDomElement(((Element) wrappedElement), false);
        writer.writeEndElement();
    }
    // ELEMENT: methodParamPartsMapping
    final List<MethodParamPartsMapping> methodParamPartsMapping = serviceEndpointMethodMapping.methodParamPartsMapping;
    if (methodParamPartsMapping != null) {
        for (final MethodParamPartsMapping methodParamPartsMappingItem : methodParamPartsMapping) {
            if (methodParamPartsMappingItem != null) {
                writer.writeStartElement(prefix, "method-param-parts-mapping", "http://java.sun.com/xml/ns/javaee");
                writeMethodParamPartsMapping(writer, methodParamPartsMappingItem, context);
                writer.writeEndElement();
            }
        }
    }
    // ELEMENT: wsdlReturnValueMapping
    final WsdlReturnValueMapping wsdlReturnValueMapping = serviceEndpointMethodMapping.wsdlReturnValueMapping;
    if (wsdlReturnValueMapping != null) {
        writer.writeStartElement(prefix, "wsdl-return-value-mapping", "http://java.sun.com/xml/ns/javaee");
        writeWsdlReturnValueMapping(writer, wsdlReturnValueMapping, context);
        writer.writeEndElement();
    }
    context.afterMarshal(serviceEndpointMethodMapping, LifecycleCallback.NONE);
}
Also used : MethodParamPartsMapping$JAXB.readMethodParamPartsMapping(org.apache.openejb.jee.MethodParamPartsMapping$JAXB.readMethodParamPartsMapping) MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping(org.apache.openejb.jee.MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping) CollapsedStringAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter) WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping(org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping) WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping(org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping) Element(org.w3c.dom.Element) JAXBObject(org.metatype.sxc.jaxb.JAXBObject) RuntimeContext(org.metatype.sxc.jaxb.RuntimeContext)

Example 2 with WsdlReturnValueMapping

use of org.apache.openejb.jee.WsdlReturnValueMapping in project tomee by apache.

the class ServiceEndpointMethodMapping$JAXB method _read.

public static final ServiceEndpointMethodMapping _read(final XoXMLStreamReader reader, RuntimeContext context) throws Exception {
    // Check for xsi:nil
    if (reader.isXsiNil()) {
        return null;
    }
    if (context == null) {
        context = new RuntimeContext();
    }
    final ServiceEndpointMethodMapping serviceEndpointMethodMapping = new ServiceEndpointMethodMapping();
    context.beforeUnmarshal(serviceEndpointMethodMapping, LifecycleCallback.NONE);
    List<MethodParamPartsMapping> methodParamPartsMapping = null;
    // Check xsi:type
    final QName xsiType = reader.getXsiType();
    if (xsiType != null) {
        if (("service-endpoint-method-mappingType" != xsiType.getLocalPart()) || ("http://java.sun.com/xml/ns/javaee" != xsiType.getNamespaceURI())) {
            return context.unexpectedXsiType(reader, ServiceEndpointMethodMapping.class);
        }
    }
    // Read attributes
    for (final Attribute attribute : reader.getAttributes()) {
        if (("id" == attribute.getLocalName()) && (("" == attribute.getNamespace()) || (attribute.getNamespace() == null))) {
            // ATTRIBUTE: id
            final String id = Adapters.collapsedStringAdapterAdapter.unmarshal(attribute.getValue());
            context.addXmlId(reader, id, serviceEndpointMethodMapping);
            serviceEndpointMethodMapping.id = id;
        } else if (XMLConstants.W3C_XML_SCHEMA_INSTANCE_NS_URI != attribute.getNamespace()) {
            context.unexpectedAttribute(attribute, new QName("", "id"));
        }
    }
    // Read elements
    for (final XoXMLStreamReader elementReader : reader.getChildElements()) {
        if (("java-method-name" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: javaMethodName
            final String javaMethodNameRaw = elementReader.getElementAsString();
            final String javaMethodName;
            try {
                javaMethodName = Adapters.collapsedStringAdapterAdapter.unmarshal(javaMethodNameRaw);
            } catch (final Exception e) {
                context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                continue;
            }
            serviceEndpointMethodMapping.javaMethodName = javaMethodName;
        } else if (("wsdl-operation" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: wsdlOperation
            final String wsdlOperationRaw = elementReader.getElementAsString();
            final String wsdlOperation;
            try {
                wsdlOperation = Adapters.collapsedStringAdapterAdapter.unmarshal(wsdlOperationRaw);
            } catch (final Exception e) {
                context.xmlAdapterError(elementReader, CollapsedStringAdapter.class, String.class, String.class, e);
                continue;
            }
            serviceEndpointMethodMapping.wsdlOperation = wsdlOperation;
        } else if (("wrapped-element" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: wrappedElement
            final Element wrappedElement = elementReader.getElementAsDomElement();
            serviceEndpointMethodMapping.wrappedElement = wrappedElement;
        } else if (("method-param-parts-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: methodParamPartsMapping
            final MethodParamPartsMapping methodParamPartsMappingItem = readMethodParamPartsMapping(elementReader, context);
            if (methodParamPartsMapping == null) {
                methodParamPartsMapping = serviceEndpointMethodMapping.methodParamPartsMapping;
                if (methodParamPartsMapping != null) {
                    methodParamPartsMapping.clear();
                } else {
                    methodParamPartsMapping = new ArrayList<MethodParamPartsMapping>();
                }
            }
            methodParamPartsMapping.add(methodParamPartsMappingItem);
        } else if (("wsdl-return-value-mapping" == elementReader.getLocalName()) && ("http://java.sun.com/xml/ns/javaee" == elementReader.getNamespaceURI())) {
            // ELEMENT: wsdlReturnValueMapping
            final WsdlReturnValueMapping wsdlReturnValueMapping = readWsdlReturnValueMapping(elementReader, context);
            serviceEndpointMethodMapping.wsdlReturnValueMapping = wsdlReturnValueMapping;
        } else {
            context.unexpectedElement(elementReader, new QName("http://java.sun.com/xml/ns/javaee", "java-method-name"), new QName("http://java.sun.com/xml/ns/javaee", "wsdl-operation"), new QName("http://java.sun.com/xml/ns/javaee", "wrapped-element"), new QName("http://java.sun.com/xml/ns/javaee", "method-param-parts-mapping"), new QName("http://java.sun.com/xml/ns/javaee", "wsdl-return-value-mapping"));
        }
    }
    if (methodParamPartsMapping != null) {
        serviceEndpointMethodMapping.methodParamPartsMapping = methodParamPartsMapping;
    }
    context.afterUnmarshal(serviceEndpointMethodMapping, LifecycleCallback.NONE);
    return serviceEndpointMethodMapping;
}
Also used : CollapsedStringAdapter(javax.xml.bind.annotation.adapters.CollapsedStringAdapter) Attribute(org.metatype.sxc.util.Attribute) QName(javax.xml.namespace.QName) Element(org.w3c.dom.Element) ArrayList(java.util.ArrayList) MethodParamPartsMapping$JAXB.readMethodParamPartsMapping(org.apache.openejb.jee.MethodParamPartsMapping$JAXB.readMethodParamPartsMapping) MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping(org.apache.openejb.jee.MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping) WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping(org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping) WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping(org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping) RuntimeContext(org.metatype.sxc.jaxb.RuntimeContext) XoXMLStreamReader(org.metatype.sxc.util.XoXMLStreamReader)

Example 3 with WsdlReturnValueMapping

use of org.apache.openejb.jee.WsdlReturnValueMapping in project tomee by apache.

the class HeavyweightOperationInfoBuilder method mapReturnType.

private void mapReturnType() throws OpenEJBException {
    if (outputMessage == null) {
        throw new OpenEJBException("No output message, but a mapping for it for operation " + operationName);
    }
    // verify mapped return value qname matches expected output message name
    WsdlReturnValueMapping wsdlReturnValueMapping = methodMapping.getWsdlReturnValueMapping();
    if (!wsdlReturnValueMapping.getWsdlMessage().equals(outputMessage.getQName())) {
        throw new OpenEJBException("OutputMessage has QName: " + outputMessage.getQName() + " but mapping specifies: " + wsdlReturnValueMapping.getWsdlMessage() + " for operation " + operationName);
    }
    //
    // Determind return type qname and xml schema type
    //
    QName returnQName = null;
    QName returnXmlType = null;
    if (wsdlReturnValueMapping.getWsdlMessagePartName() != null) {
        String wsdlMessagePartName = wsdlReturnValueMapping.getWsdlMessagePartName();
        if (outParamNames.contains(wsdlMessagePartName)) {
            throw new OpenEJBException("output message part " + wsdlMessagePartName + " has both an INOUT or OUT mapping and a return value mapping for operation " + operationName);
        }
        if (bindingStyle.isWrapped()) {
            Part outPart = getWrappedPart(outputMessage);
            XmlElementInfo returnParticle = getWrapperChild(outPart, wsdlMessagePartName);
            returnQName = new QName("", returnParticle.qname.getLocalPart());
            returnXmlType = returnParticle.xmlType;
        } else if (bindingStyle.isRpc()) {
            Part part = outputMessage.getPart(wsdlMessagePartName);
            if (part == null) {
                throw new OpenEJBException("No part for wsdlMessagePartName " + wsdlMessagePartName + " in output message for operation " + operationName);
            }
            returnQName = new QName("", part.getName());
            // RPC can only use type
            returnXmlType = part.getTypeName();
        } else {
            Part part = outputMessage.getPart(wsdlMessagePartName);
            if (part == null) {
                throw new OpenEJBException("No part for wsdlMessagePartName " + wsdlMessagePartName + " in output message for operation " + operationName);
            }
            returnQName = getPartName(part);
            returnXmlType = returnQName;
        }
        outParamNames.add(wsdlMessagePartName);
    } else {
    // what does this mean????
    }
    operationInfo.returnQName = returnQName;
    operationInfo.returnXmlType = returnXmlType;
    operationInfo.returnJavaType = wsdlReturnValueMapping.getMethodReturnValue();
}
Also used : OpenEJBException(org.apache.openejb.OpenEJBException) WsdlReturnValueMapping(org.apache.openejb.jee.WsdlReturnValueMapping) QName(javax.xml.namespace.QName) Part(javax.wsdl.Part)

Aggregations

CollapsedStringAdapter (javax.xml.bind.annotation.adapters.CollapsedStringAdapter)2 QName (javax.xml.namespace.QName)2 MethodParamPartsMapping$JAXB.readMethodParamPartsMapping (org.apache.openejb.jee.MethodParamPartsMapping$JAXB.readMethodParamPartsMapping)2 MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping (org.apache.openejb.jee.MethodParamPartsMapping$JAXB.writeMethodParamPartsMapping)2 WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping (org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.readWsdlReturnValueMapping)2 WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping (org.apache.openejb.jee.WsdlReturnValueMapping$JAXB.writeWsdlReturnValueMapping)2 RuntimeContext (org.metatype.sxc.jaxb.RuntimeContext)2 Element (org.w3c.dom.Element)2 ArrayList (java.util.ArrayList)1 Part (javax.wsdl.Part)1 OpenEJBException (org.apache.openejb.OpenEJBException)1 WsdlReturnValueMapping (org.apache.openejb.jee.WsdlReturnValueMapping)1 JAXBObject (org.metatype.sxc.jaxb.JAXBObject)1 Attribute (org.metatype.sxc.util.Attribute)1 XoXMLStreamReader (org.metatype.sxc.util.XoXMLStreamReader)1