Search in sources :

Example 1 with MethodParamPartsMapping

use of org.apache.openejb.jee.MethodParamPartsMapping 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 MethodParamPartsMapping

use of org.apache.openejb.jee.MethodParamPartsMapping 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 MethodParamPartsMapping

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

the class HeavyweightOperationInfoBuilder method mapParameters.

private JaxRpcParameterInfo[] mapParameters() throws OpenEJBException {
    List<MethodParamPartsMapping> paramMappings = methodMapping.getMethodParamPartsMapping();
    // 
    // Map the ParameterDesc instance in an array so they can be ordered properly
    // before they are added to the the OperationDesc.
    // 
    JaxRpcParameterInfo[] parameterInfos = new JaxRpcParameterInfo[paramMappings.size()];
    for (MethodParamPartsMapping paramMapping : paramMappings) {
        JaxRpcParameterInfo parameterInfo = mapParameter(paramMapping);
        parameterInfos[paramMapping.getParamPosition().intValue()] = parameterInfo;
    }
    // 
    for (int i = 0; i < parameterInfos.length; i++) {
        if (parameterInfos[i] == null) {
            throw new OpenEJBException("There is no mapping for parameter number " + i + " for operation " + operationName);
        }
    }
    // 
    if (bindingStyle.isWrapped()) {
        // verify that all child elements have a parameter mapping
        Part inputPart = getWrappedPart(inputMessage);
        QName wrapperName = inputPart.getElementName();
        XmlElementInfo wrapperElement = schemaInfo.elements.get(wrapperName);
        XmlTypeInfo wrapperType = schemaInfo.types.get(wrapperElement.xmlType);
        Set<String> expectedInParams = new HashSet<>();
        for (XmlElementInfo expectedInParam : wrapperType.elements.values()) {
            expectedInParams.add(expectedInParam.qname.getLocalPart());
        }
        if (!inParamNames.equals(expectedInParams)) {
            throw new OpenEJBException("Not all wrapper children were mapped for operation name" + operationName);
        }
    } else {
        // verify all input message parts are mapped
        if (!inParamNames.equals(inputMessage.getParts().keySet())) {
            throw new OpenEJBException("Not all input message parts were mapped for operation name" + operationName);
        }
    }
    return parameterInfos;
}
Also used : OpenEJBException(org.apache.openejb.OpenEJBException) QName(javax.xml.namespace.QName) MethodParamPartsMapping(org.apache.openejb.jee.MethodParamPartsMapping) Part(javax.wsdl.Part) HashSet(java.util.HashSet)

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 HashSet (java.util.HashSet)1 Part (javax.wsdl.Part)1 OpenEJBException (org.apache.openejb.OpenEJBException)1 MethodParamPartsMapping (org.apache.openejb.jee.MethodParamPartsMapping)1 JAXBObject (org.metatype.sxc.jaxb.JAXBObject)1 Attribute (org.metatype.sxc.util.Attribute)1 XoXMLStreamReader (org.metatype.sxc.util.XoXMLStreamReader)1