Package org.jibx.ws.wsdl.tools.custom

Examples of org.jibx.ws.wsdl.tools.custom.OperationCustom


        Set imports = new InsertionOrderedSet();
        Map typemap = new HashMap(ptypemap);
        for (int i = 0; i < ops.size(); i++) {
           
            // get information for operation
            OperationCustom odef = (OperationCustom)ops.get(i);
            String oname = odef.getOperationName();
            Operation op = new Operation(oname);
            op.setDocumentation(odef.getDocumentation());
            op.setSoapAction(odef.getSoapAction());
           
            // generate input message information
            Message rqmsg = new Message(odef.getRequestMessageName(), wns);
            op.addInputMessage(rqmsg);
            def.addMessage(rqmsg);
            QName rqelem = null;
            if (m_generationParameters.isDocLit()) {
               
                // check if input parameter defined for method
                ArrayList parms = odef.getParameters();
                if (parms.size() > 0) {
                   
                    // check for existing element definition matching the parameter type
                    ValueCustom parm = (ValueCustom)parms.get(0);
                    rqelem = (QName)classelems.get(parm.getWorkingType());
                    if (rqelem == null) {
                       
                        // create new element for parameter
                        ElementElement pelem = buildValueElement(parm, ptypemap, typeschemas, holder);
                        schema.getTopLevelChildren().add(pelem);
                        rqelem = pelem.getQName();
                       
                    } else {
                       
                        // import and use existing element definition
                        imports.add(elemschemas.get(rqelem));
                        addSchemaReference(rqelem, elemschemas, holder);
                       
                    }
                }
               
            } else {
               
                // construct a sequence for wrapped method parameters
                SequenceElement seq = new SequenceElement();
                ArrayList parms = odef.getParameters();
                for (int j = 0; j < parms.size(); j++) {
                    ValueCustom parm = (ValueCustom)parms.get(j);
                    String type = parm.getWorkingType();
                    ElementElement pelem;
                    if (!typemap.containsKey(type)) {
                       
                        // add predefined mapping type to known types and require schema import
                        QName tname = (QName)classtypes.get(type);
                        if (tname != null) {
                            typemap.put(type, tname);
                            imports.add(typeschemas.get(tname));
                        }
                       
                    }
                    pelem = buildValueElement(parm, ptypemap, typeschemas, holder);
                    seq.getParticleList().add(pelem);
                }
               
                // add corresponding schema definition to schema
                ComplexTypeElement tdef = new ComplexTypeElement();
                tdef.setContentDefinition(seq);
                ElementElement elem = new ElementElement();
                String wname = odef.getRequestWrapperName();
                elem.setName(wname);
                elem.setTypeDefinition(tdef);
                schema.getTopLevelChildren().add(elem);
                rqelem = new QName(sns, wname);
               
            }
           
            // add part definition to message (if present)
            if (rqelem != null) {
                MessagePart part = new MessagePart("part", rqelem);
                rqmsg.getParts().add(part);
                def.addNamespace(rqelem.getUri());
            }
           
            // generate output message information
            Message rsmsg = new Message(odef.getResponseMessageName(), wns);
            op.addOutputMessage(rsmsg);
            def.addMessage(rsmsg);
            ValueCustom rtrn = odef.getReturn();
            QName rselem = null;
            if (m_generationParameters.isDocLit()) {
               
                // check if return value defined for method
                if (!"void".equals(rtrn.getWorkingType())) {
                   
                    // check for existing element definition matching the return type
                    rselem = (QName)classelems.get(rtrn.getWorkingType());
                    if (rselem == null) {
                       
                        // create new element for return
                        ElementElement relem = buildValueElement(rtrn, ptypemap, typeschemas, holder);
                        schema.getTopLevelChildren().add(relem);
                        rselem = relem.getQName();
                       
                    } else {
                       
                        // import and use existing element definition
                        imports.add(elemschemas.get(rselem));
                        addSchemaReference(rqelem, elemschemas, holder);
                       
                    }
                }
               
            } else {
               
                // add corresponding schema definition to schema
                SequenceElement seq = new SequenceElement();
                if (!"void".equals(rtrn.getWorkingType())) {
                    ElementElement relem = buildValueElement(rtrn, ptypemap, typeschemas, holder);
                    seq.getParticleList().add(relem);
                }
                ComplexTypeElement tdef = new ComplexTypeElement();
                tdef.setContentDefinition(seq);
                ElementElement elem = new ElementElement();
                String wname = odef.getResponseWrapperName();
                elem.setName(wname);
                elem.setTypeDefinition(tdef);
                schema.getTopLevelChildren().add(elem);
                rselem = new QName(sns, wname);
               
            }
           
            // add part definition to message (if present)
            if (rselem != null) {
                MessagePart part = new MessagePart("part", rselem);
                rsmsg.getParts().add(part);
                def.addNamespace(rselem.getUri());
            }
           
            // process fault message(s) for operation
            ArrayList thrws = odef.getThrows();
            WsdlCustom wsdlcustom = m_generationParameters.getWsdlCustom();
            for (int j = 0; j < thrws.size(); j++) {
                ThrowsCustom thrw = (ThrowsCustom)thrws.get(j);
                String type = thrw.getType();
                Message fmsg = (Message)fltmap.get(type);
View Full Code Here


        boolean doclit = m_generationParameters.isDocLit();
        for (Iterator iter = services.iterator(); iter.hasNext();) {
            ServiceCustom service = (ServiceCustom)iter.next();
            List ops = service.getOperations();
            for (Iterator iter1 = ops.iterator(); iter1.hasNext();) {
                OperationCustom op = (OperationCustom)iter1.next();
                List parms = op.getParameters();
                if (doclit && parms.size() > 1) {
                    System.err.println("Multiple parmameters not allowed for doc/lit: method " + op.getMethodName());
                }
                for (Iterator iter2 = parms.iterator(); iter2.hasNext();) {
                    ValueCustom parm = (ValueCustom)iter2.next();
                    if (doclit) {
                        accumulateData(parm, classelems, concrs);
                    } else {
                        accumulateData(parm, classtypes, abstrs);
                    }
                }
                if (doclit) {
                    accumulateData(op.getReturn(), classelems, concrs);
                } else {
                    accumulateData(op.getReturn(), classtypes, abstrs);
                }
                ArrayList thrws = op.getThrows();
                for (int i = 0; i < thrws.size(); i++) {
                   
                    // add concrete mapping for data type, if used
                    ThrowsCustom thrw = (ThrowsCustom)thrws.get(i);
                    FaultCustom fault = wsdlcustom.forceFaultCustomization(thrw.getType());
                    if (!concrs.contains(fault.getDataType())) {
                        concrs.add(fault.getDataType());
                        qnames.add(new QName(service.getNamespace(), fault.getElementName()));
                    }
                }
            }
        }
       
        // include extra classes as needing concrete mappings
        GlobalCustom global = m_generationParameters.getGlobal();
        for (int i = 0; i < extras.size(); i++) {
            String type = (String)extras.get(i);
            if (!concrs.contains(type)) {
                concrs.add(type);
                global.addClassCustomization(type);
                qnames.add(null);
            }
        }
       
        // generate bindings for all data classes used
        m_bindingGenerator.generateSpecified(qnames, concrs.asList(), abstrs.asList());
       
        // add binding definitions for collections passed or returned in plain doc/lit, and find empty service bindings
        Map typemap = new HashMap();
        Set unbounduris = new HashSet();
        for (Iterator iter = services.iterator(); iter.hasNext();) {
            ServiceCustom service = (ServiceCustom)iter.next();
            List ops = service.getOperations();
            String uri = service.getNamespace();
            BindingHolder hold = m_bindingGenerator.addBinding(uri, false);
            for (Iterator iter1 = ops.iterator(); iter1.hasNext();) {
                OperationCustom op = (OperationCustom)iter1.next();
                List parms = op.getParameters();
                for (Iterator iter2 = parms.iterator(); iter2.hasNext();) {
                    ValueCustom parm = (ValueCustom)iter2.next();
                    if (parm.getItemType() != null) {
                        addCollectionBinding(doclit, parm, typemap, hold);
                    }
                }
                ValueCustom ret = op.getReturn();
                if (ret.getItemType() != null) {
                    addCollectionBinding(doclit, ret, typemap, hold);
                }
            }
            if (hold.getMappingCount() == 0) {
View Full Code Here

        assertEquals("service address", "http://localhost:8080/axis2/services/Service1", service.getServiceAddress());
        List operations = service.getOperations();
        assertEquals("operation count", 7, operations.size());
        Map opmap = new HashMap();
        for (int i = 0; i < operations.size(); i++) {
            OperationCustom op = (OperationCustom)operations.get(i);
            opmap.put(op.getOperationName(), op);
        }
       
        // getDataClass1 method and operation
        OperationCustom op = (OperationCustom)opmap.get("getDataClass1");
        assertNotNull("getDataClass1 operation", op);
        assertEquals("getDataClass1 request message", "getDataClass1Message", op.getRequestMessageName());
        assertEquals("getDataClass1 request wrapper", "getDataClass1", op.getRequestWrapperName());
        assertEquals("getDataClass1 response message", "getDataClass1ResponseMessage", op.getResponseMessageName());
        assertEquals("getDataClass1 response wrapper", "getDataClass1Response", op.getResponseWrapperName());
        List params = op.getParameters();
        assertEquals("getDataClass1 parameters count", 0, params.size());
        ValueCustom ret = op.getReturn();
        assertEquals("getDataClass1 returned type", "org.jibx.binding.generator.DataClass1", ret.getWorkingType());
       
        // setDataClass1 method and operation
        op = (OperationCustom)opmap.get("setDataClass1");
        assertNotNull("setDataClass1 operation", op);
        assertEquals("setDataClass1 request message", "setDataClass1Message", op.getRequestMessageName());
        assertEquals("setDataClass1 request wrapper", "setDataClass1", op.getRequestWrapperName());
        assertEquals("setDataClass1 response message", "setDataClass1ResponseMessage", op.getResponseMessageName());
        assertEquals("setDataClass1 response wrapper", "setDataClass1Response", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setDataClass1 parameters count", 1, params.size());
        ValueCustom param = (ValueCustom)params.get(0);
        assertEquals("setDataClass1 parameter type", "org.jibx.binding.generator.DataClass1", param.getWorkingType());
        assertEquals("setDataClass1 returned element name", "data", param.getXmlName());
        ret = op.getReturn();
        assertEquals("setDataClass1 returned type", "void", ret.getWorkingType());
       
        // changeDataClass1 method and operation
        op = (OperationCustom)opmap.get("changeDataClass1");
        assertNotNull("changeDataClass1 operation", op);
        assertEquals("changeDataClass1 request message", "changeDataClass1Message", op.getRequestMessageName());
        assertEquals("changeDataClass1 request wrapper", "changeDataClass1", op.getRequestWrapperName());
        assertEquals("changeDataClass1 response message", "changeDataClass1ResponseMessage", op.getResponseMessageName());
        assertEquals("changeDataClass1 response wrapper", "changeDataClass1Response", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setDataClass1 parameters count", 2, params.size());
        param = (ValueCustom)params.get(0);
        assertEquals("changeDataClass1 parameter type", "int", param.getWorkingType());
        assertEquals("changeDataClass1 returned element name", "index", param.getXmlName());
        param = (ValueCustom)params.get(1);
        assertEquals("changeDataClass1 parameter type", "org.jibx.binding.generator.DataClass1", param.getWorkingType());
        assertEquals("changeDataClass1 returned element name", "data", param.getXmlName());
        ret = op.getReturn();
        assertEquals("changeDataClass1 returned type", "org.jibx.binding.generator.DataClass1", ret.getWorkingType());
       
        // getTypedList method and operation
        op = (OperationCustom)opmap.get("getTypedList");
        assertNotNull("getTypedList operation", op);
        assertEquals("getTypedList request message", "getTypedListMessage", op.getRequestMessageName());
        assertEquals("getTypedList request wrapper", "getTypedList", op.getRequestWrapperName());
        assertEquals("getTypedList response message", "getTypedListResponseMessage", op.getResponseMessageName());
        assertEquals("getTypedList response wrapper", "getTypedListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("getTypedList parameters count", 0, params.size());
        ret = op.getReturn();
        assertEquals("getTypedList returned type", "java.util.List", ret.getWorkingType());
        assertEquals("getTypedList returned item type", "org.jibx.binding.generator.DataClass1", ret.getItemType());
        assertEquals("getTypedList returned item element name", "dataClass1", ret.getItemName());
       
        // setTypedList method and operation
        op = (OperationCustom)opmap.get("setTypedList");
        assertNotNull("setTypedList operation", op);
        assertEquals("setTypedList request message", "setTypedListMessage", op.getRequestMessageName());
        assertEquals("setTypedList request wrapper", "setTypedList", op.getRequestWrapperName());
        assertEquals("setTypedList response message", "setTypedListResponseMessage", op.getResponseMessageName());
        assertEquals("setTypedList response wrapper", "setTypedListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setTypedList parameters count", 1, params.size());
        param = (ValueCustom)params.get(0);
        assertEquals("setTypedList parameter type", "java.util.List", param.getWorkingType());
        assertEquals("setTypedList parameter item type", "org.jibx.binding.generator.DataClass1", param.getItemType());
        assertEquals("setTypedList parameter element name", "list", param.getXmlName());
        assertEquals("setTypedList parameter item element name", "dataClass1", param.getItemName());
        ret = op.getReturn();
        assertEquals("setTypedList returned type", "void", ret.getWorkingType());
       
        // getList method and operation
        op = (OperationCustom)opmap.get("getList");
        assertNotNull("getList operation", op);
        assertEquals("getList request message", "getListMessage", op.getRequestMessageName());
        assertEquals("getList request wrapper", "getList", op.getRequestWrapperName());
        assertEquals("getList response message", "getListResponseMessage", op.getResponseMessageName());
        assertEquals("getList response wrapper", "getListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("getList parameters count", 0, params.size());
        ret = op.getReturn();
        assertEquals("getList returned type", "java.util.List", ret.getWorkingType());
        assertEquals("getList returned item type", "java.lang.Object", ret.getItemType());
        assertEquals("getList returned item element name", "item", ret.getItemName());
       
        // setList method and operation
        op = (OperationCustom)opmap.get("setList");
        assertNotNull("setList operation", op);
        assertEquals("setList request message", "setListMessage", op.getRequestMessageName());
        assertEquals("setList request wrapper", "setList", op.getRequestWrapperName());
        assertEquals("setList response message", "setListResponseMessage", op.getResponseMessageName());
        assertEquals("setList response wrapper", "setListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setList parameters count", 1, params.size());
        param = (ValueCustom)params.get(0);
        assertEquals("setList parameter type", "java.util.List", param.getWorkingType());
        assertEquals("setList parameter item type", "java.lang.Object", param.getItemType());
        assertEquals("setList parameter element name", "list", param.getXmlName());
        assertEquals("setList parameter item element name", "item", param.getItemName());
        ret = op.getReturn();
        assertEquals("setList returned type", "void", ret.getWorkingType());
    }
View Full Code Here

        assertEquals("service address", "http://localhost:8080/jibxsoap/MyService", service.getServiceAddress());
        List operations = service.getOperations();
        assertEquals("operation count", 4, operations.size());
        Map opmap = new HashMap();
        for (int i = 0; i < operations.size(); i++) {
            OperationCustom op = (OperationCustom)operations.get(i);
            opmap.put(op.getOperationName(), op);
        }
       
        // getTypedList method and operation
        OperationCustom op = (OperationCustom)opmap.get("getTypedList");
        assertNotNull("getTypedList operation", op);
        assertEquals("getTypedList request message", "getTypedListMessage", op.getRequestMessageName());
        assertEquals("getTypedList request wrapper", "getTypedList", op.getRequestWrapperName());
        assertEquals("getTypedList response message", "getTypedListResponseMessage", op.getResponseMessageName());
        assertEquals("getTypedList response wrapper", "getTypedListResponse", op.getResponseWrapperName());
        List params = op.getParameters();
        assertEquals("getTypedList parameters count", 0, params.size());
        ValueCustom ret = op.getReturn();
        assertEquals("getTypedList returned type", "java.util.List", ret.getWorkingType());
        assertEquals("getTypedList returned item type", "org.jibx.binding.generator.DataClass1", ret.getItemType());
       
        // setTypedList method and operation
        op = (OperationCustom)opmap.get("setTypedList");
        assertNotNull("setTypedList operation", op);
        assertEquals("setTypedList request message", "setTypedListMessage", op.getRequestMessageName());
        assertEquals("setTypedList request wrapper", "setTypedList", op.getRequestWrapperName());
        assertEquals("setTypedList response message", "setTypedListResponseMessage", op.getResponseMessageName());
        assertEquals("setTypedList response wrapper", "setTypedListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setTypedList parameters count", 1, params.size());
        ValueCustom param = (ValueCustom)params.get(0);
        assertEquals("setTypedList parameter type", "java.util.List", param.getWorkingType());
        assertEquals("setTypedList parameter item type", "org.jibx.binding.generator.DataClass1", param.getItemType());
        assertEquals("setTypedList parameter element name", "list", param.getXmlName());
        assertEquals("setTypedList parameter item element name", "dataClass1", param.getItemName());
        ret = op.getReturn();
        assertEquals("setTypedList returned type", "void", ret.getWorkingType());
       
        // getList method and operation
        op = (OperationCustom)opmap.get("getList");
        assertNotNull("getList operation", op);
        assertEquals("getList request message", "glreq", op.getRequestMessageName());
        assertEquals("getList request wrapper", "glreqwrap", op.getRequestWrapperName());
        assertEquals("getList response message", "glrsp", op.getResponseMessageName());
        assertEquals("getList response wrapper", "glrspwrap", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("getList parameters count", 0, params.size());
        ret = op.getReturn();
        assertEquals("getList returned type", "java.util.List", ret.getWorkingType());
        assertEquals("getList returned item type", "org.jibx.binding.generator.DataClass1", ret.getItemType());
        assertEquals("getList returned item element name", "dataClass1", ret.getItemName());
       
        // setList method and operation
        op = (OperationCustom)opmap.get("setList");
        assertNotNull("setList operation", op);
        assertEquals("setList request message", "setListMessage", op.getRequestMessageName());
        assertEquals("setList request wrapper", "setList", op.getRequestWrapperName());
        assertEquals("setList response message", "setListResponseMessage", op.getResponseMessageName());
        assertEquals("setList response wrapper", "setListResponse", op.getResponseWrapperName());
        params = op.getParameters();
        assertEquals("setList parameters count", 1, params.size());
        param = (ValueCustom)params.get(0);
        assertEquals("setList parameter type", "java.util.List", param.getWorkingType());
        assertEquals("setList parameter item type", "org.jibx.binding.generator.DataClass1", param.getItemType());
        assertEquals("setList parameter element name", "data-classes", param.getXmlName());
        assertEquals("setList parameter item element name", "data-class", param.getItemName());
        ret = op.getReturn();
        assertEquals("setList returned type", "void", ret.getWorkingType());
    }
View Full Code Here

TOP

Related Classes of org.jibx.ws.wsdl.tools.custom.OperationCustom

Copyright © 2018 www.massapicom. 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.