Examples of ParameterDescription


Examples of org.apache.axis2.jaxws.description.ParameterDescription

        // TODO What if return is an swa attachment, then this should start
        // at 1 not 0.
        int swaIndex = 0;
       
        for (int i = 0; i < params.length; i++) {
            ParameterDescription pd = params[i];
           
            if (log.isDebugEnabled()) {
                log.debug("  processing Parameter " + pd);
            }
           

            if (pd.getMode() == Mode.IN && isInput ||
                    pd.getMode() == Mode.INOUT ||
                    pd.getMode() == Mode.OUT && !isInput) {

                // Don't consider async handlers, they are are not represented on the wire,
                // thus they don't have a PDElement
                // TODO
                //if (isAsyncHandler(param)) {
                //    continue;
                //}

                Block block = null;
                JAXBBlockContext context = new JAXBBlockContext(packages);

                AttachmentDescription attachmentDesc = pd.getAttachmentDescription();
                if (attachmentDesc == null) {
                   
                    boolean isBase64Binary = byte[].class.equals(javaType[i]);
                   
                   
                    // In most cases the entire java object is unmarshalled.
                    // But in some cases, the java object is a series of
                    // elements.
                    boolean unmarshalComponents = false;
                    if (pd.isListType() ||
                        javaComponentType[i] == null ||
                        isBase64Binary) {
                        context.setProcessType(javaType[i]);
                        context.setIsxmlList(pd.isListType());
                    } else {
                        context.setProcessType(javaComponentType[i]);
                        unmarshalComponents = true;
                    }
                   
                   
                    // Unmarshal the object into a JAXB object or JAXBElement
                    Element element = null;
                    if (pd.isHeader()) {
                       
                        if (log.isDebugEnabled()) {
                            log.debug("  get block from the headers");
                        }
                        // Get the Block from the header
                        // NOTE The parameter name is always used to get the header
                        // element
                        String localName = pd.getParameterName();
                        block = message.getHeaderBlock(pd.getTargetNamespace(),
                                                       localName,
                                                       context,
                                                       factory);
                        element = new Element(block.getBusinessObject(true),
                                block.getQName());
                    } else if (firstIndex[i] >= 0) {
                        if (log.isDebugEnabled()) {
                            log.debug("  get block from the " + firstIndex[i] +
                                    " to the " + lastIndex[i]);
                        }
                        // You must use this method if there are more than one body block
                        // This method may cause OM expansion
                        if (unmarshalComponents) {
                            Object container = makeContainer(javaType[i],
                                    javaComponentType[i],
                                    (lastIndex[i] - firstIndex[i]) + 1);

                            for (int blockI=firstIndex[i]; blockI<=lastIndex[i]; blockI++) {
                                block = message.getBodyBlock(blockI, context, factory);
                                Object value = block.getBusinessObject(true);
                                if (value instanceof JAXBElement) {
                                    value = ((JAXBElement) value).getValue();
                                }
                                if (log.isDebugEnabled()) {
                                    log.debug(" get Business Object " + JavaUtils.getObjectIdentity(value) + " from block " + blockI);

                                }

                                addComponent(container, value, blockI - firstIndex[i]);
                               
                            }
                            element = new Element(container,    
                                    block.getQName());

                        } else {
                            block = message.getBodyBlock(firstIndex[i], context, factory);
                            element = new Element(block.getBusinessObject(true),
                                    block.getQName());
                        }
                    }  else {
                        // Missing parameter
                        if (log.isDebugEnabled()) {
                            log.debug("  there is no block for this parameter.");
                        }
                        QName qName = new QName(pd.getTargetNamespace(), pd.getPartName());
                        if (!unmarshalComponents) {
                            element = new Element(null, qName);
                        } else {
                            Object container = makeContainer(javaType[i],
                                    javaComponentType[i], 0);
                            element = new Element(container, qName);
                        }
                    }
                   
                   
                    PDElement pde =
                        new PDElement(pd, element, javaComponentType[i] == null ? null
                                : javaComponentType[i]);
                    pdeList.add(pde);
                } else {
                    // Attachment Processing
                    if (attachmentDesc.getAttachmentType() == AttachmentType.SWA) {
                        String partName = pd.getPartName();
                        String cid = null;
                        if (log.isDebugEnabled()) {
                            log.debug("Getting the attachment dataHandler for partName=" + partName);
                        }
                        if (partName != null && partName.length() > 0) {
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

                log.debug("   QName " + i + " = " + qNames.get(i));
            }
        }
        for (int pi=0; pi<params.length; pi++) {
            if (pi >= 0) {
                ParameterDescription pd = params[pi];
                if (log.isDebugEnabled()) {
                    log.debug("  ParameterDescription =" + pd.toString());
                    log.debug("  original firstIndex = " + firstIndex[pi]);
                    log.debug("  original lastIndex = " + lastIndex[pi]);
                }
                firstIndex[pi] = -1// Reset index
                lastIndex[pi] = -1// Reset index
                // Found a parameter that is expected in the body
                // Calculate its index by looking for an exact qname match
                for (int qi=0; qi<qNames.size(); qi++) {
                    QName qName = qNames.get(qi);
                    if (qName.getLocalPart().equals(pd.getPartName())) {
                        if (qName.getNamespaceURI().equals(pd.getTargetNamespace())) {
                            if (firstIndex[pi] < 0) {
                                if(log.isDebugEnabled()) {
                                    log.debug("    set first index to " + qi);
                                }
                                firstIndex[pi] = qi;
                            }
                            lastIndex[pi] = qi;
                        }
                    }
                }
                // Fallback to searching for just the part name
                if (firstIndex[pi] < 0) {
                    for (int qi=0; qi<qNames.size(); qi++) {
                        QName qName = qNames.get(qi);
                        if (qName.getLocalPart().equals(pd.getPartName())) {
                            if (firstIndex[pi] < 0) {
                                if(log.isDebugEnabled()) {
                                    log.debug("    fallback: set first index to " + qi);
                                }
                                firstIndex[pi] = qi;
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

     */
    private static void addPackagesFromParameters(TreeSet<String> set, OperationDescription opDesc) {
        ParameterDescription[] pDescs = opDesc.getParameterDescriptions();
        if (pDescs != null) {
            for (int i=0; i<pDescs.length; i++) {
                ParameterDescription pDesc = pDescs[i];
                if (pDesc != null) {
                    // Get the actual type of the parameter.
                    // For example if the parameter is Holder<A>, the A.class is
                    // returned.
                    // NOTE Generics are handled by the addPackagesFromParameters(Method..) method
                    Class paramClass = pDesc.getParameterActualType();
                    String pkg = getPackageFromClass(paramClass);
                    if (log.isDebugEnabled()) {
                        log.debug("Package from Parameter (" + paramClass + ") = " + pkg);
                    }
                    if (pkg != null) {
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

            // We want to use "by Java Type" unmarshalling for
            // allall non-JAXB objects
            Class[] javaTypes = new Class[pds.length];
            for (int i = 0; i < pds.length; i++) {
                ParameterDescription pd = pds[i];
                Class type = pd.getParameterActualType();
                if (MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    javaTypes[i] = type;
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

            // We want to use "by Java Type" unmarshalling for
            // allall non-JAXB objects
            Class[] javaTypes = new Class[pds.length];
            for (int i = 0; i < pds.length; i++) {
                ParameterDescription pd = pds[i];
                Class type = pd.getParameterActualType();
                // If it is not a JAXB Root Element
                if (MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    javaTypes[i] = type;
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

                                                                          false, false);

            // We want to use "by Java Type" marshalling for
            // all body elements and all non-JAXB objects
            for (PDElement pde : pdeList) {
                ParameterDescription pd = pde.getParam();
                Class type = pd.getParameterActualType();
                if (MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    pde.setByJavaTypeClass(type);
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

                                                                          false, false);

            // We want to use "by Java Type" marshalling for
            // all body elements and all non-JAXB objects
            for (PDElement pde : pdeList) {
                ParameterDescription pd = pde.getParam();
                Class type = pd.getParameterActualType();
                if (MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    pde.setByJavaTypeClass(type);
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

                                                        true); // use partName since this is rpc/lit

            // We want to use "by Java Type" marshalling for
            // all body elements and all non-JAXB objects
            for (PDElement pde : pdeList) {
                ParameterDescription pd = pde.getParam();
                Class type = pd.getParameterActualType();
                if (!pd.isHeader() ||
                        MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    pde.setByJavaTypeClass(type);
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

            // We want to use "by Java Type" unmarshalling for
            // all body elements and all non-JAXB objects
            Class[] javaTypes = new Class[pds.length];
            for (int i = 0; i < pds.length; i++) {
                ParameterDescription pd = pds[i];
                Class type = pd.getParameterActualType();
                if (!pd.isHeader() ||
                        MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    javaTypes[i] = type;
                }
            }
View Full Code Here

Examples of org.apache.axis2.jaxws.description.ParameterDescription

                                                        true);   // use partName since this is rpc/lit

            // We want to use "by Java Type" marshalling for
            // all body elements and all non-JAXB objects
            for (PDElement pde : pdeList) {
                ParameterDescription pd = pde.getParam();
                Class type = pd.getParameterActualType();
                if (!pd.isHeader() ||
                        MethodMarshallerUtils.isNotJAXBRootElement(type, marshalDesc)) {
                    pde.setByJavaTypeClass(type);
                }
            }
            // TODO Should we check for null output body values?  Should we check for null output header values ?
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.