Examples of ParameterInfo


Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

    public void writeMethodInWrapper(MethodInfo minfo)
        throws WrapperFault, IOException
    {
        boolean isAllTreatedAsOutParams = false;
        ParameterInfo returntype = null;
        int noOfOutParams = minfo.getOutputParameterTypes().size();
        if (0 == noOfOutParams)
        {
            returntype = null;
        }
        else
        {
            if (1 == noOfOutParams)
            {
                returntype =
                    (ParameterInfo) minfo
                        .getOutputParameterTypes()
                        .iterator()
                        .next();
            }
            else
            {
                isAllTreatedAsOutParams = true;
            }
        }
        Collection params = minfo.getInputParameterTypes();

        String methodName = minfo.getMethodname();
        Type retType = null;
        boolean returntypeissimple = false;
        boolean returntypeisarray = false;
        String outparamTypeName = null;
        if (returntype != null)
        {
            outparamTypeName =
                WrapperUtils.getClassNameFromParamInfoConsideringArrays(
                    returntype,
                    wscontext);
            retType =
                wscontext.getTypemap().getType(returntype.getSchemaName());
            if (retType != null)
            {
                returntypeisarray = retType.isArray();
                if (WSDL2Ws.verbose)
                {
                    System.out.println(
                        retType.getLanguageSpecificName()
                            + "LanguageName  .................... ");
                }
                if (CUtils.isSimpleType(retType.getLanguageSpecificName()))
                {
                    returntypeissimple = true;
                }
            }
        }
        writer.write("\n/*\n");
        writer.write(
            " * This method wrap the service method " + methodName + "\n");
        writer.write(" */\n");
        //method signature
        String paramTypeName;
        boolean typeisarray = false;
        boolean typeissimple = false;
        Type type;
        if (returntype == null)
        {
            writer.write("void");
        }
        else
        {
            writer.write(outparamTypeName);
            if (WSDL2Ws.verbose)
            {
                System.out.println(
                    "Output Parameter type Name :" + outparamTypeName);
            }
        }
        writer.write(" " + classname + "::" + methodName + "(");
        ArrayList paramsB = (ArrayList) params;
        for (int i = 0; i < paramsB.size(); i++)
        {
            paramTypeName =
                WrapperUtils.getClassNameFromParamInfoConsideringArrays(
                    (ParameterInfo) paramsB.get(i),
                    wscontext);
            if (i > 0)
            {
                writer.write(", ");
            }
            writer.write(paramTypeName + " Value" + i);
        }
        // Multiples parameters so fill the methods prototype
        ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
        if (isAllTreatedAsOutParams)
        {
            String currentParaTypeName;
            for (int i = 0; i < paramsC.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsC.get(i)).getSchemaName());
                writer.write(
                    ", AXIS_OUT_PARAM  "
                        + WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            (ParameterInfo) paramsC.get(i),
                            wscontext)
                        + " *OutValue"
                        + i);
            }
        }
        writer.write(")\n{\n");
        if (returntype != null)
        {
            writer.write("\t");
            if (returntypeisarray)
            {
                //for arrays
                writer.write(outparamTypeName + " RetArray = {NULL, 0};\n");
            }
            else
            {
                if (!returntypeissimple)
                {
                    writer.write(outparamTypeName + " pReturn = NULL;\n");
                    //for complex types
                }
                else
                {
                    //for simple types
                    String initValue = CUtils.getInitValue(outparamTypeName);
                    if (initValue != null)
                    {
                        writer.write(
                            outparamTypeName + " Ret = " + initValue + ";\n");
                    }
                    else
                    {
                        if (outparamTypeName.equals("xsd__base64Binary")
                            || outparamTypeName.equals("xsd__hexBinary"))
                        {
                            writer.write(outparamTypeName + " Ret;\n");
                            writer.write("\tRet.__ptr = NULL;\n");
                            writer.write("\tRet.__size = 0;\n");
                        }

                        else
                        {
                            writer.write(outparamTypeName + " Ret;\n");
                        }
                    }
                    //TODO initialize return parameter appropriately.
                }
            }
        }

        //writer.write("\tchar* cFaultcode;\n");
        //writer.write("\tchar* cFaultstring;\n");
        //writer.write("\tchar* cFaultactor;\n");
        writer.write("\tconst char* pcCmplxFaultName;\n");
        writer.write("\ttry\n\t{");
        writer.write(
            "\n\t\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER"
                + ")) \n\t\t\treturn ");
        //damitha
        if (returntype != null)
        {
            writer.write(
                (returntypeisarray
                    ? "RetArray"
                    : returntypeissimple
                    ? "Ret"
                    : "pReturn")
                    + ";\n");
        }
        else
        {
            writer.write(";\n");
        }
        writer.write(
            "\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
                + minfo.getSoapAction()
                + "\");\n");
        writer.write("\t\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
        //TODO check which version is it really.
        writer.write(
            "\t\tm_pCall->setOperation(\""
                + minfo.getMethodname()
                + "\", \""
                + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
                + "\");\n");
        writer.write("\t\tapplyUserPreferences();\n");
        for (int i = 0; i < paramsB.size(); i++)
        {
            type =
                wscontext.getTypemap().getType(
                    ((ParameterInfo) paramsB.get(i)).getSchemaName());
            if (type != null)
            {
                paramTypeName = type.getLanguageSpecificName();
                typeisarray = type.isArray();
            }
            else
            {
                paramTypeName = ((ParameterInfo) paramsB.get(i)).getLangName();
                typeisarray = false;
            }
            typeissimple = CUtils.isSimpleType(paramTypeName);
            if (typeisarray)
            {
                //arrays
                QName qname = WrapperUtils.getArrayType(type).getName();
                String containedType = null;
                if (CUtils.isSimpleType(qname))
                {
                    containedType = CUtils.getclass4qname(qname);
                    writer.write("\tm_pCall->addBasicArrayParameter(");
                    writer.write(
                        "(Axis_Array*)(&Value"
                            + i
                            + "), "
                            + CUtils.getXSDTypeForBasicType(containedType)
                            + ", \""
                            + ((ParameterInfo) paramsB.get(i)).getParamName()
                            + "\"");
                }
                else
                {
                    containedType = qname.getLocalPart();
                    writer.write("\tm_pCall->addCmplxArrayParameter(");
                    writer.write(
                        "(Axis_Array*)(&Value"
                            + i
                            + "), (void*)Axis_Serialize_"
                            + containedType
                            + ", (void*)Axis_Delete_"
                            + containedType
                            + ", (void*) Axis_GetSize_"
                            + containedType
                            + ", \""
                            + ((ParameterInfo) paramsB.get(i)).getParamName()
                            + "\", Axis_URI_"
                            + containedType);
                }
            }
            else
            {
                if (typeissimple)
                {
                    //for simple types 
                    writer.write("\t\tm_pCall->addParameter(");
                    writer.write(
                        "(void*)&Value"
                            + i
                            + ", \""
                            + ((ParameterInfo) paramsB.get(i)).getParamName()
                            + "\", "
                            + CUtils.getXSDTypeForBasicType(paramTypeName));
                }
                else
                {
                    //for complex types
                    writer.write("\tm_pCall->addCmplxParameter(");
                    writer.write(
                        "Value"
                            + i
                            + ", (void*)Axis_Serialize_"
                            + paramTypeName
                            + ", (void*)Axis_Delete_"
                            + paramTypeName
                            + ", \""
                            + ((ParameterInfo) paramsB.get(i)).getParamName()
                            + "\", Axis_URI_"
                            + paramTypeName);
                }
            }
            writer.write(");\n");
        }
        writer.write("\t\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t\t{\n");
        writer.write(
            "\t\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
                + minfo.getOutputMessage().getLocalPart()
                + "\", \""
                + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
                + "\"))\n\t\t\t{\n");

        if (isAllTreatedAsOutParams)
        {
            String currentParamName;
            String currentParaType;
            for (int i = 0; i < paramsC.size(); i++)
            {
                ParameterInfo currentType = (ParameterInfo) paramsC.get(i);
                type =
                    wscontext.getTypemap().getType(currentType.getSchemaName());
                if (type != null)
                {
                    currentParaType = type.getLanguageSpecificName();
                    typeisarray = type.isArray();
                }
                else
                {
                    currentParaType =
                        ((ParameterInfo) paramsC.get(i)).getLangName();
                    typeisarray = false;
                }
                typeissimple = CUtils.isSimpleType(currentParaType);

                currentParamName = "*OutValue" + i;
                // Some code need to be merged as we have some duplicated in coding here.
                if (typeisarray)
                {
                    QName qname = WrapperUtils.getArrayType(type).getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\t\t\t\t"
                                + currentParamName
                                + " = ("
                                + currentParaType
                                + "&)m_pCall->getBasicArray("
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + currentType.getParamName()
                                + "\", 0);\n");
                    }
                    else
                    {
                        containedType = qname.getLocalPart();
                        writer.write(
                            "\t\t\t\t"
                                + currentParamName
                                + " = ("
                                + currentParaType
                                + "&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
                                + containedType);
                        writer.write(
                            "\t\t\t\t, (void*) Axis_Create_"
                                + containedType
                                + ", (void*) Axis_Delete_"
                                + containedType
                                + ", (void*) Axis_GetSize_"
                                + containedType
                                + ", \""
                                + currentType.getParamName()
                                + "\", Axis_URI_"
                                + containedType
                                + ");\n");
                    }
                }
                else
                {
                    if (typeissimple)
                    {
                        writer.write(
                            "\t\t\t\t"
                                + currentParamName
                                + " = m_pCall->"
                                + CUtils.getParameterGetValueMethodName(
                                    currentParaType,
                                    false)
                                + "(\""
                                + currentType.getParamName()
                                + "\", 0);\n");
                    }
                    else
                    {
                        writer.write(
                            "\t\t\t\t"
                                + currentParamName
                                + " = ("
                                + currentParaType
                                + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
                                + currentParaType
                                + ", (void*) Axis_Create_"
                                + currentParaType
                                + ", (void*) Axis_Delete_"
                                + currentParaType
                                + ",\""
                                + currentType.getParamName()
                                + "\", 0);\n");
                    }
                }
            }
            writer.write("\t\t\t}\n");
            writer.write("\t\t}\n");
            writer.write("\tm_pCall->unInitialize();\n");
        }
        else
            if (returntype == null)
            {
                writer.write("\t\t\t/*not successful*/\n\t\t}\n");
                writer.write("\t\t}\n");
                writer.write("\tm_pCall->unInitialize();\n");
            }
            else
                if (returntypeisarray)
                {
                    QName qname = WrapperUtils.getArrayType(retType).getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\t\t\t\tRetArray = ("
                                + outparamTypeName
                                + "&)m_pCall->getBasicArray("
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + returntype.getParamName()
                                + "\", 0);\n\t\t\t}\n");
                    }
                    else
                    {
                        containedType = qname.getLocalPart();
                        writer.write(
                            "\t\t\t\tRetArray = ("
                                + outparamTypeName
                                + "&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
                                + containedType);
                        //damitha
                        writer.write(
                            ", (void*) Axis_Create_"
                                + containedType
                                + ", (void*) Axis_Delete_"
                                + containedType
                                + ", (void*) Axis_GetSize_"
                                + containedType
                                + ", \""
                                + returntype.getParamName()
                                + "\", Axis_URI_"
                                + containedType
                                + ");\n\t\t\t}\n");
                    }
                    writer.write("\t\t}\n");
                    writer.write("\tm_pCall->unInitialize();\n");
                    //        writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
                    writer.write("\t\treturn RetArray;\n");
                }
                else
                    if (returntypeissimple)
                    {
                        writer.write(
                            "\t\t\t\tRet = m_pCall->"
                                + CUtils.getParameterGetValueMethodName(
                                    outparamTypeName,
                                    false)
                                + "(\""
                                + returntype.getParamName()
                                + "\", 0);\n\t\t\t}\n");
                        writer.write("\t\t}\n");
                        writer.write("\tm_pCall->unInitialize();\n");
                        //            writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
                        writer.write("\t\treturn Ret;\n");
                    }
                    else
                    {
                        outparamTypeName = returntype.getLangName();
                        //need to have complex type name without *
                        writer.write(
                            "\t\t\t\tpReturn = ("
                                + outparamTypeName
                                + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
                                + outparamTypeName
                                + ", (void*) Axis_Create_"
                                + outparamTypeName
                                + ", (void*) Axis_Delete_"
                                + outparamTypeName
                                + ",\""
                                + returntype.getParamName()
                                + "\", 0);\n\t\t}\n");
                        writer.write("\t\t}\n");
                        writer.write("\tm_pCall->unInitialize();\n");
                        //            writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
                        writer.write("\t\treturn pReturn;\n");

                    }
        //added by nithya   
        writer.write("\t}\n");
        writer.write("\tcatch(AxisException& e)\n\t{\n");
        writer.write("\t\tint iExceptionCode = e.getExceptionCode();\n");
        writer.write(
            "\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n");
        writer.write("\t\t{\n");
        writer.write("\tm_pCall->unInitialize();\n");
        //writer.write("\t\t\tm_pCall->unInitialize();\n");
        writer.write(
            "\t\t\tthrow "
                + wscontext.getSerInfo().getServicename()
                + "_AxisClientException(e.what());\n");
        writer.write("\t\t}\n");
        //ISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault("Fault", "http://localhost/axis/MathOps");

        writer.write(
            "\t\tISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault(\"Fault\",\""
                + wscontext.getWrapInfo().getTargetEndpointURI()
                + "\" );\n");
        writer.write("\t\tif(pSoapFault)\n");
        writer.write("\t\t{\n");
        //writer.write("\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n");
        //to get fault info         
        Iterator paramsFault = minfo.getFaultType().iterator();
        String faultInfoName = null;
        String faultType = null;
        String langName = null;
        String paramName = null;
        boolean flag = false;
        int j = 0;
        if (!paramsFault.hasNext())
        {
            writer.write("\tm_pCall->unInitialize();\n");
            writer.write(
                "\t\t\tthrow "
                    + wscontext.getSerInfo().getServicename()
                    + "_AxisClientException(pSoapFault);\n");
        }
        else
        {
            flag = true;
            writer.write(
                "\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n");
        }
        while (paramsFault.hasNext())
        {
            j = j + 1;
            FaultInfo info = (FaultInfo) paramsFault.next();
            faultInfoName = info.getFaultInfo();
            ArrayList paramInfo = info.getParams();
            for (int i = 0; i < paramInfo.size(); i++)
            {
                ParameterInfo par = (ParameterInfo) paramInfo.get(i);
                paramName = par.getParamName();
                langName = par.getLangName();
                faultType =
                    WrapperUtils.getClassNameFromParamInfoConsideringArrays(
                        par,
                        wscontext);
                if (j > 1)
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

            writer.write("\n");
            for (int i = 0; i < methods.size(); i++)
            {
                minfo = (MethodInfo) this.methods.get(i);
                boolean isAllTreatedAsOutParams = false;
                ParameterInfo returntype = null;
                int noOfOutParams = minfo.getOutputParameterTypes().size();
                if (0 == noOfOutParams)
                {
                    returntype = null;
                    writer.write("void ");
                }
                else
                    if (1 == noOfOutParams)
                    {
                        returntype =
                            (ParameterInfo) minfo
                                .getOutputParameterTypes()
                                .iterator()
                                .next();
                        writer.write(
                            WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                returntype,
                                wscontext)
                                + " ");
                    }
                    else
                    {
                        isAllTreatedAsOutParams = true;
                        writer.write("void ");
                    }
                writer.write(minfo.getMethodname() + "(");
                //write parameter names
                Iterator params = minfo.getInputParameterTypes().iterator();
                if (params.hasNext())
                {
                    ParameterInfo fparam = (ParameterInfo) params.next();
                    writer.write(
                        WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            fparam,
                            wscontext)
                            + " Value"
                            + 0);
                }
                for (int j = 1; params.hasNext(); j++)
                {
                    ParameterInfo nparam = (ParameterInfo) params.next();
                    writer.write(
                        ","
                            + WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                nparam,
                                wscontext)
                            + " Value"
                            + j);
                }
                if (isAllTreatedAsOutParams)
                {
                    params = minfo.getOutputParameterTypes().iterator();
                    for (int j = 0; params.hasNext(); j++)
                    {
                        ParameterInfo nparam = (ParameterInfo) params.next();
                        writer.write(
                            ", AXIS_OUT_PARAM "
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    nparam,
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

     */
    public void writeMethodInWrapper(MethodInfo minfo)
        throws WrapperFault, IOException
    {
        boolean isAllTreatedAsOutParams = false;
        ParameterInfo returntype = null;
        int noOfOutParams = minfo.getOutputParameterTypes().size();
        if (0 == noOfOutParams)
        {
            returntype = null;
        }
        else
            if (1 == noOfOutParams)
            {
                returntype =
                    (ParameterInfo) minfo
                        .getOutputParameterTypes()
                        .iterator()
                        .next();
            }
            else
            {
                isAllTreatedAsOutParams = true;
            }
        String methodName = minfo.getMethodname();
        Collection params = minfo.getInputParameterTypes();
        Type retType = null;
        String outparamType = null;
        boolean returntypeissimple = false;
        boolean returntypeisarray = false;
        if (returntype != null)
        {
            retType =
                wscontext.getTypemap().getType(returntype.getSchemaName());
            if (retType != null)
            {
                if (retType.isSimpleType())
                { //schema defined simpleType possibly with restrictions
                    returntypeissimple = true;
                    outparamType = CUtils.getclass4qname(retType.getBaseType());
                }
                else
                {
                    outparamType = retType.getLanguageSpecificName();
                    returntypeisarray = retType.isArray();
                    returntypeissimple = CUtils.isSimpleType(outparamType);
                }
            }
            else
            {
                outparamType = returntype.getLangName();
                returntypeissimple = CUtils.isSimpleType(outparamType);
            }
        }
        String paraTypeName;
        ArrayList paramsB = new ArrayList(params);
        Type type;

        writer.write(
            "\n/*forward declaration for the c method " + methodName + " */\n");
        //TODO forward declaration writing logic should be changed when arrays come into picture
        if (returntype == null)
        {
            writer.write("extern void " + methodName + "(");
        }
        else
        {
            writer.write(
                "extern "
                    + outparamType
                    + ((returntypeissimple || returntypeisarray) ? " " : "* ")
                    + methodName
                    + "(");
        }

        for (int i = 0; i < paramsB.size(); i++)
        {
            if (i > 0)
                writer.write(",");
            type =
                this.wscontext.getTypemap().getType(
                    ((ParameterInfo) paramsB.get(i)).getSchemaName());
            paraTypeName = ((ParameterInfo) paramsB.get(i)).getLangName();
            if ((CUtils.isSimpleType(paraTypeName))
                || (type != null && type.isSimpleType()))
            {
                //for simple types 
                writer.write(paraTypeName);
            }
            else
                if (type != null && type.isArray())
                {
                    writer.write(paraTypeName);
                }
                else
                {
                    writer.write(paraTypeName + "*");
                }
        }
        if (isAllTreatedAsOutParams)
        {
            ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
            for (int i = 0; i < paramsC.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsC.get(i)).getSchemaName());
                writer.write(
                    ", AXIS_OUT_PARAM "
                        + WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            (ParameterInfo) paramsC.get(i),
                            wscontext)
                        + "*");
            }
        }
        writer.write(");\n");
        writer.write("\n/*\n");
        writer.write(" * This method wrap the service method \n");
        writer.write(" */\n");
        //method signature
        writer.write(
            "int "
                + methodName
                + CUtils.WRAPPER_METHOD_APPENDER
                + "(IWrapperSoapDeSerializer DZ, IWrapperSoapSerializer SZ)\n{\n");
        writer.write("\tint nStatus;\n");
        boolean aretherearrayparams = false;
        String elementName;
        String returnParamName;
        for (int i = 0; i < paramsB.size(); i++)
        {
            ParameterInfo param = (ParameterInfo) paramsB.get(i);
            type = this.wscontext.getTypemap().getType(param.getSchemaName());
            paraTypeName = param.getLangName();
            if ((CUtils.isSimpleType(paraTypeName))
                || (type != null && type.isSimpleType()))
            {
                //for simple types 
                writer.write("\t" + paraTypeName + " v" + i + ";\n");
            }
            else
                if (type != null && type.isArray())
                {
                    //for arrays
                    aretherearrayparams = true;
                    writer.write("\t" + paraTypeName + " v" + i + ";\n");
                }
                else
                {
                    //for complex types
                    writer.write("\t" + paraTypeName + "* v" + i + ";\n");
                }
        }
        if (returntype != null)
        {
            writer.write(
                "\t"
                    + outparamType
                    + ((returntypeisarray || returntypeissimple) ? " " : "* ")
                    + "ret;\n");
        }
        if (aretherearrayparams)
        {
            writer.write("\tAxis_Array array;\n");
        }
        // Multiples parameters so fill the methods prototype
        if (isAllTreatedAsOutParams)
        {
            ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
            for (int i = 0; i < paramsC.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsC.get(i)).getSchemaName());
                writer.write(
                    "\t"
                        + WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            (ParameterInfo) paramsC.get(i),
                            wscontext)
                        + " out"
                        + i
                        + ";\n");
            }
        }
        writer.write(
            "\tif (AXIS_SUCCESS != DZ._functions->checkMessageBody(DZ._object, \""
                + minfo.getInputMessage().getLocalPart()
                + "\", \""
                + minfo.getInputMessage().getNamespaceURI()
                + "\")) return AXIS_FAIL;\n");
        writer.write(
            "\tSZ._functions->createSoapMethod(SZ._object, \""
                + minfo.getOutputMessage().getLocalPart()
                + "\", \""
                + minfo.getOutputMessage().getNamespaceURI()
                + "\");\n");
        //create and populate variables for each parameter
        for (int i = 0; i < paramsB.size(); i++)
        {
            ParameterInfo param = (ParameterInfo) paramsB.get(i);
            type = this.wscontext.getTypemap().getType(param.getSchemaName());
            if (type != null && type.isSimpleType())
            { //schema defined simpleType possibly with restrictions
                paraTypeName = CUtils.getclass4qname(type.getBaseType());
                ;
            }
            else
            {
                paraTypeName = param.getLangName();
            }
            elementName = param.getElementName().getLocalPart();
            if (type != null && type.isSimpleType())
            { //schema defined simpleType possibly with restrictions
                writer.write(
                    "\tv"
                        + i
                        + " = DZ._functions->"
                        + CUtils.getParameterGetValueMethodName(
                            paraTypeName,
                            false)
                        + "(DZ._object,\""
                        + elementName
                        + "\", 0);\n");
            }
            else
                if ((CUtils.isSimpleType(param.getLangName())))
                {
                    //for simple types 
                    writer.write(
                        "\tv"
                            + i
                            + " = DZ._functions->"
                            + CUtils.getParameterGetValueMethodName(
                                paraTypeName,
                                false)
                            + "(DZ._object,\""
                            + elementName
                            + "\", 0);\n");
                }
                else
                    if (type != null && type.isArray())
                    {
                        QName qname = WrapperUtils.getArrayType(type).getName();
                        String containedType = null;
                        if (CUtils.isSimpleType(qname))
                        {
                            containedType = CUtils.getclass4qname(qname);
                            writer.write(
                                "\tarray = DZ._functions->getBasicArray(DZ._object, "
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + elementName
                                    + "\", 0);\n");
                            writer.write(
                                "\tmemcpy(&v"
                                    + i
                                    + ", &array, sizeof(Axis_Array));\n");
                        }
                        else
                        {
                            containedType = qname.getLocalPart();
                            writer.write(
                                "\tarray = DZ._functions->getCmplxArray(DZ._object, (void*)Axis_DeSerialize_"
                                    + containedType
                                    + "\n\t\t, (void*)Axis_Create_"
                                    + containedType
                                    + ", (void*)Axis_Delete_"
                                    + containedType
                                    + "\n\t\t, (void*)Axis_GetSize_"
                                    + containedType
                                    + ", \""
                                    + elementName
                                    + "\", Axis_URI_"
                                    + containedType
                                    + ");\n");
                            writer.write(
                                "\tmemcpy(&v"
                                    + i
                                    + ", &array, sizeof(Axis_Array));\n");
                        }
                    }
                    else
                        if (param.isAnyType())
                        {
                            //for anyType
                            writer.write(
                                "\tv"
                                    + i
                                    + " = ("
                                    + paraTypeName
                                    + "*)DZ._functions->getAnyObject(DZ._object);\n");
                        }
                        else
                        {
                            //for complex types
                            writer.write(
                                "\tv"
                                    + i
                                    + " = ("
                                    + paraTypeName
                                    + "*)DZ._functions->getCmplxObject(DZ._object, (void*)Axis_DeSerialize_"
                                    + paraTypeName
                                    + "\n\t\t, (void*)Axis_Create_"
                                    + paraTypeName
                                    + ", (void*)Axis_Delete_"
                                    + paraTypeName
                                    + "\n\t\t,\""
                                    + elementName
                                    + "\", Axis_URI_"
                                    + paraTypeName
                                    + ");\n");
                        }
        }
        writer.write(
            "\tif (AXIS_SUCCESS != (nStatus = DZ._functions->getStatus(DZ._object))) return nStatus;\n");
        if (returntype != null)
        {
            returnParamName = returntype.getElementName().getLocalPart();
            /* Invoke the service when return type not void */
            writer.write("\tret = " + methodName + "(");
            if (0 < paramsB.size())
            {
                for (int i = 0; i < paramsB.size() - 1; i++)
                {
                    writer.write("v" + i + ",");
                }
                writer.write("v" + (paramsB.size() - 1));
            }
            writer.write(");\n");
            /* set the result */
            if (returntypeissimple)
            {
                writer.write(
                    "\treturn SZ._functions->addOutputParam(SZ._object, \""
                        + returnParamName
                        + "\", (void*)&ret, "
                        + CUtils.getXSDTypeForBasicType(outparamType)
                        + ");\n");
            }
            else
                if (returntypeisarray)
                {
                    Type arrayType = WrapperUtils.getArrayType(retType);
                    QName qname = arrayType.getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\treturn SZ._functions->addOutputBasicArrayParam(SZ._object, (Axis_Array*)(&ret),"
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + returnParamName
                                + "\");\n");
                    }
                    else
                        if (arrayType.isSimpleType())
                        { //SimpleType in the schema
                            containedType =
                                CUtils.getclass4qname(arrayType.getBaseType());
                            writer.write(
                                "\treturn SZ._functions->addOutputBasicArrayParam(SZ._object, (Axis_Array*)(&ret),"
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + returnParamName
                                    + "\");\n");
                        }
                        else
                        {
                            containedType = qname.getLocalPart();
                            writer.write(
                                "\treturn SZ._functions->addOutputCmplxArrayParam(SZ._object, (Axis_Array*)(&ret), (void*) Axis_Serialize_"
                                    + containedType
                                    + ", (void*) Axis_Delete_"
                                    + containedType
                                    + ", (void*) Axis_GetSize_"
                                    + containedType
                                    + ", \""
                                    + returnParamName
                                    + "\", Axis_URI_"
                                    + containedType
                                    + ");\n");
                        }
                }
                else
                    if (returntype.isAnyType())
                    {
                        writer.write(
                            "\treturn SZ._functions->addOutputAnyObject(SZ._object, ret);\n");
                    }
                    else
                    {
                        //complex type
                        writer.write(
                            "\treturn SZ._functions->addOutputCmplxParam(SZ._object, ret, (void*)Axis_Serialize_"
                                + outparamType
                                + ", (void*)Axis_Delete_"
                                + outparamType
                                + ", \""
                                + returnParamName
                                + "\", Axis_URI_"
                                + outparamType
                                + ");\n");
                    }
        }
        else
            if (isAllTreatedAsOutParams)
            {
                writer.write("\t" + methodName + "(");
                if (0 < paramsB.size())
                {
                    for (int i = 0; i < paramsB.size(); i++)
                    {
                        writer.write("v" + i + ",");
                    }
                }
                ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
                for (int i = 0; i < paramsC.size() - 1; i++)
                {
                    writer.write("&out" + i + ",");
                }
                writer.write("&out" + (paramsC.size() - 1));
                writer.write(");\n");
                paramsC = (ArrayList) minfo.getOutputParameterTypes();
                for (int i = 0; i < paramsC.size(); i++)
                {
                    ParameterInfo param = (ParameterInfo) paramsC.get(i);
                    retType =
                        wscontext.getTypemap().getType(param.getSchemaName());
                    if (retType != null)
                    {
                        if (retType.isSimpleType())
                        {
                            returntypeissimple = true;
                            outparamType =
                                CUtils.getclass4qname(retType.getBaseType());
                        }
                        else
                        {
                            outparamType = retType.getLanguageSpecificName();
                            returntypeisarray = retType.isArray();
                            returntypeissimple =
                                CUtils.isSimpleType(outparamType);
                        }
                    }
                    else
                    {
                        outparamType = param.getLangName();
                        returntypeissimple = CUtils.isSimpleType(outparamType);
                    }
                    returnParamName = param.getElementName().getLocalPart();
                    if (returntypeissimple)
                    {
                        writer.write(
                            "\tSZ._functions->addOutputParam(SZ._object, \""
                                + returnParamName
                                + "\", (void*)&out"
                                + i
                                + ", "
                                + CUtils.getXSDTypeForBasicType(outparamType)
                                + ");\n");
                    }
                    else
                        if (returntypeisarray)
                        {
                            QName qname =
                                WrapperUtils.getArrayType(retType).getName();
                            String containedType = null;
                            if (CUtils.isSimpleType(qname))
                            {
                                containedType = CUtils.getclass4qname(qname);
                                writer.write(
                                    "\tSZ._functions->addOutputBasicArrayParam(SZ._object, (Axis_Array*)(&out"
                                        + i
                                        + "), "
                                        + CUtils.getXSDTypeForBasicType(
                                            containedType)
                                        + ", \""
                                        + returnParamName
                                        + "\");\n");
                            }
                            else
                            {
                                containedType = qname.getLocalPart();
                                writer.write(
                                    "\tSZ._functions->addOutputCmplxArrayParam(SZ._object, (Axis_Array*)(&out"
                                        + i
                                        + "),"
                                        + "(void*) Axis_Serialize_"
                                        + containedType
                                        + ", (void*) Axis_Delete_"
                                        + containedType
                                        + ", (void*) Axis_GetSize_"
                                        + containedType
                                        + ", \""
                                        + returnParamName
                                        + "\", Axis_URI_"
                                        + containedType
                                        + ");\n");
                            }
                        }
                        else
                            if (param.isAnyType())
                            {
                                //anyType
                                writer.write(
                                    "\tSZ._functions->addOutputAnyObject(SZ._object, out"
                                        + i
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

            writer.write("\t\tvoid fini();\n");
            for (int i = 0; i < methods.size(); i++)
            {
                minfo = (MethodInfo) this.methods.get(i);
                boolean isAllTreatedAsOutParams = false;
                ParameterInfo returntype = null;
                int noOfOutParams = minfo.getOutputParameterTypes().size();
                if (0 == noOfOutParams)
                {
                    returntype = null;
                    writer.write("\t\tvoid ");
                }
                else
                {
                    if (1 == noOfOutParams)
                    {
                        returntype =
                            (ParameterInfo) minfo
                                .getOutputParameterTypes()
                                .iterator()
                                .next();
                        writer.write(
                            "\t\t"
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    returntype,
                                    wscontext)
                                + " ");
                    }
                    else
                    {
                        isAllTreatedAsOutParams = true;
                        writer.write("\t\tvoid ");
                    }
                }
                //write return type
                writer.write(minfo.getMethodname() + "(");
                //write parameter names
                Iterator params = minfo.getInputParameterTypes().iterator();
                if (params.hasNext())
                {
                    ParameterInfo fparam = (ParameterInfo) params.next();
                    writer.write(
                        WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            fparam,
                            wscontext)
                            + " Value"
                            + 0);
                }
                for (int j = 1; params.hasNext(); j++)
                {
                    ParameterInfo nparam = (ParameterInfo) params.next();
                    writer.write(
                        ","
                            + WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                nparam,
                                wscontext)
                            + " Value"
                            + j);
                }
                if (isAllTreatedAsOutParams)
                {
                    params = minfo.getOutputParameterTypes().iterator();
                    for (int j = 0; params.hasNext(); j++)
                    {
                        ParameterInfo nparam = (ParameterInfo) params.next();
                        writer.write(
                            ", AXIS_OUT_PARAM "
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    nparam,
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

                }
                else
                {
                    if (1 == noOfOutParams)
                    {
                        ParameterInfo returnParam =
                            (ParameterInfo) minfo
                                .getOutputParameterTypes()
                                .iterator()
                                .next();
                        writer.write(
                            "\tSTORAGE_CLASS_INFO "
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    returnParam,
                                    wscontext)
                                + " ");
                    }
                    else
                    {
                        isAllTreatedAsOutParams = true;
                        writer.write("\tSTORAGE_CLASS_INFO void ");
                    }
                }
                //write return type
                writer.write(minfo.getMethodname() + "(");

                //write parameter names
                Iterator params = minfo.getInputParameterTypes().iterator();
                if (params.hasNext())
                {
                    ParameterInfo fparam = (ParameterInfo) params.next();
                    writer.write(
                        WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            fparam,
                            wscontext)
                            + " Value"
                            + 0);
                }
                for (int j = 1; params.hasNext(); j++)
                {
                    ParameterInfo nparam = (ParameterInfo) params.next();
                    writer.write(
                        ","
                            + WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                nparam,
                                wscontext)
                            + " Value"
                            + j);
                }
                if (isAllTreatedAsOutParams)
                {
                    params = minfo.getOutputParameterTypes().iterator();
                    for (int j = 0; params.hasNext(); j++)
                    {
                        ParameterInfo nparam = (ParameterInfo) params.next();
                        writer.write(
                            ", AXIS_OUT_PARAM "
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    nparam,
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

    public void writeMethodInWrapper(MethodInfo minfo)
        throws WrapperFault, IOException
    {
        Type type;
        boolean isAllTreatedAsOutParams = false;
        ParameterInfo returntype = null;
        int noOfOutParams = minfo.getOutputParameterTypes().size();
        if (0 == noOfOutParams)
        {
            returntype = null;
        }
        else
        {
            if (1 == noOfOutParams)
            {
                returntype =
                    (ParameterInfo) minfo
                        .getOutputParameterTypes()
                        .iterator()
                        .next();
            }
            else
            {
                isAllTreatedAsOutParams = true;
            }
        }
        Collection params = minfo.getInputParameterTypes();
        String methodName = minfo.getMethodname();
        Type retType = null;
        String outparamType = null;
        boolean returntypeissimple = false;
        boolean returntypeisarray = false;
        if (returntype != null)
        {
            retType =
                wscontext.getTypemap().getType(returntype.getSchemaName());
            if (retType != null)
            {
                if (retType.isSimpleType())
                { //schema defined simpleType possibly with restrictions
                    returntypeissimple = true;
                    outparamType = CUtils.getclass4qname(retType.getBaseType());
                }
                else
                {
                    if (returntype.isArray())
                    {
                        outparamType =
                            WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                returntype,
                                wscontext);
                        returntypeissimple =
                            (null != CUtils.getclass4qname(retType.getName())
                                && CUtils.isSimpleType(
                                    CUtils.getclass4qname(retType.getName())));
                        returntypeisarray = true;
                    }
                    else
                    {
                        outparamType = retType.getLanguageSpecificName();
                        returntypeissimple = CUtils.isSimpleType(outparamType);
                        returntypeisarray = retType.isArray();
                    }
                }
            }
            else
            {
                outparamType = returntype.getLangName();
                returntypeissimple = CUtils.isSimpleType(outparamType);
            }
        }
        writer.write("\n/*\n");
        writer.write(" * This method wrap the service method \n");
        writer.write(" */\n");
        //method signature
        writer.write(
            "int " + classname + "::" + methodName + "(void* pMsg)\n{\n");
        writer.write("\tIMessageData* mc = (IMessageData*)pMsg;\n");
        writer.write("\tint nStatus;\n");
        writer.write("\tIWrapperSoapSerializer* pIWSSZ = NULL;\n");
        writer.write("\tmc->getSoapSerializer(&pIWSSZ);\n");
        writer.write("\tif (!pIWSSZ) return AXIS_FAIL;\n");
        writer.write("\tIWrapperSoapDeSerializer* pIWSDZ = NULL;\n");
        writer.write("\tmc->getSoapDeSerializer(&pIWSDZ);\n");
        writer.write("\tif (!pIWSDZ) return AXIS_FAIL;\n");
        writer.write("\t/* check whether we have got correct message */\n");
        writer.write(
            "\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""
                + minfo.getInputMessage().getLocalPart()
                + "\", \""
                + minfo.getInputMessage().getNamespaceURI()
                + "\")) return AXIS_FAIL;\n");
        if (minfo.getOutputMessage() != null)
        {
            writer.write(
                "\tpIWSSZ->createSoapMethod(\""
                    + minfo.getOutputMessage().getLocalPart()
                    + "\", \""
                    + minfo.getOutputMessage().getNamespaceURI()
                    + "\");\n");
        }
        //create and populate variables for each parameter
        String paraTypeName;

        String elementName;
        String returnParamName;
        ArrayList paramsB = new ArrayList(params);
        for (int i = 0; i < paramsB.size(); i++)
        {
            ParameterInfo param = (ParameterInfo) paramsB.get(i);
            type = this.wscontext.getTypemap().getType(param.getSchemaName());
            if (type != null && type.isSimpleType())
            { //schema defined simpleType possibly with restrictions
                paraTypeName = CUtils.getclass4qname(type.getBaseType());
            }
            else
            {
                if (param.isArray())
                {
                    paraTypeName =
                        WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            param,
                            wscontext);
                }
                else
                {
                    paraTypeName = param.getLangName();
                }
            }

            elementName = param.getElementNameAsString();
            if (type != null && type.isSimpleType())
            { //schema defined simpleType possibly with restrictions
                writer.write(
                    "\t"
                        + paraTypeName
                        + " v"
                        + i
                        + " = pIWSDZ->"
                        + CUtils.getParameterGetValueMethodName(
                            paraTypeName,
                            false)
                        + "(\""
                        + elementName
                        + "\",0);\n");
            }
            else
            {
                if ((CUtils.isSimpleType(param.getLangName())))
                {
                    //for simple types 
                    if (param.isArray())
                    { /*parameters that are declared as arrays in the wrapping element.*/
                        String containedType =
                            CUtils.getclass4qname(type.getName());
                        writer.write(
                            "\t"
                                + paraTypeName
                                + " v"
                                + i
                                + " = ("
                                + CUtils.getBasicArrayNameforType(containedType)
                                + "&)pIWSDZ->getBasicArray("
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + elementName
                                + "\",0);\n");
                    }
                    else
                    {
                        writer.write(
                            "\t"
                                + paraTypeName
                                + " v"
                                + i
                                + " = pIWSDZ->"
                                + CUtils.getParameterGetValueMethodName(
                                    paraTypeName,
                                    false)
                                + "(\""
                                + elementName
                                + "\",0);\n");
                    }
                }
                else
                {
                    if ((type != null) && type.isArray())
                    {
                        Type arrayType = WrapperUtils.getArrayType(type);
                        QName qname = arrayType.getName();
                        String containedType = null;
                        if (CUtils.isSimpleType(qname))
                        {
                            containedType = CUtils.getclass4qname(qname);
                            writer.write(
                                "\t"
                                    + paraTypeName
                                    + " v"
                                    + i
                                    + " = ("
                                    + CUtils.getBasicArrayNameforType(
                                        containedType)
                                    + "&)pIWSDZ->getBasicArray("
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + elementName
                                    + "\",0);\n");
                        }
                        else
                        {
                            if (arrayType.isSimpleType())
                            { //SimpleType in the schema
                                containedType =
                                    CUtils.getclass4qname(
                                        arrayType.getBaseType());
                                writer.write(
                                    "\t"
                                        + paraTypeName
                                        + " v"
                                        + i
                                        + " = ("
                                        + CUtils.getBasicArrayNameforType(
                                            containedType)
                                        + "&)pIWSDZ->getBasicArray("
                                        + CUtils.getXSDTypeForBasicType(
                                            containedType)
                                        + ", \""
                                        + elementName
                                        + "\",0);\n");
                            }
                            else
                            {
                                containedType = qname.getLocalPart();
                                writer.write(
                                    "\t"
                                        + paraTypeName
                                        + " v"
                                        + i
                                        + " = ("
                                        + paraTypeName
                                        + "&)pIWSDZ->getCmplxArray((void*)Axis_DeSerialize_"
                                        + containedType
                                        + "\n\t\t, (void*)Axis_Create_"
                                        + containedType
                                        + ", (void*)Axis_Delete_"
                                        + containedType
                                        + "\n\t\t, (void*)Axis_GetSize_"
                                        + containedType
                                        + ", \""
                                        + elementName
                                        + "\", Axis_URI_"
                                        + containedType
                                        + ");\n");
                            }
                        }
                    }
                    else
                    {
                        if (param.isAnyType())
                        {
                            //for anyType
                            writer.write(
                                "\t"
                                    + paraTypeName
                                    + " *v"
                                    + i
                                    + " = ("
                                    + paraTypeName
                                    + "*)pIWSDZ->getAnyObject();\n");
                        }
                        else
                        {
                            //for complex types
                            writer.write(
                                "\t"
                                    + paraTypeName
                                    + " *v"
                                    + i
                                    + " = ("
                                    + paraTypeName
                                    + "*)pIWSDZ->getCmplxObject((void*)Axis_DeSerialize_"
                                    + paraTypeName
                                    + "\n\t\t, (void*)Axis_Create_"
                                    + paraTypeName
                                    + ", (void*)Axis_Delete_"
                                    + paraTypeName
                                    + "\n\t\t, \""
                                    + elementName
                                    + "\", Axis_URI_"
                                    + paraTypeName
                                    + ");\n");
                        }
                    }
                }
            }
        }
        writer.write(
            "\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus())) return nStatus;\n");
        // Multiples parameters so fill the methods prototype
        if (isAllTreatedAsOutParams)
        {
            ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
            for (int i = 0; i < paramsC.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsC.get(i)).getSchemaName());
                writer.write(
                    "\t"
                        + WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            (ParameterInfo) paramsC.get(i),
                            wscontext)
                        + " out"
                        + i
                        + ";\n");
            }
        }
        writer.write("\ttry\n\t{\n"); //nithya
        if (returntype != null)
        { /* Invoke the service when return type not void */
            returnParamName = returntype.getElementNameAsString();
            writer.write(
                "\t"
                    + outparamType
                    + ((returntypeisarray || returntypeissimple) ? " " : " *")
                    + "ret = "
                    + "pWs->"
                    + methodName
                    + "(");
            if (0 < paramsB.size())
            {
                for (int i = 0; i < paramsB.size() - 1; i++)
                {
                    writer.write("v" + i + ",");
                }
                writer.write("v" + (paramsB.size() - 1));
            }
            writer.write(");\n");
            /* set the result */
            if (returntypeissimple)
            {
                if (returntype.isArray())
                { /*parameters that are declared as arrays in the wrapping element.*/
                    String containedType =
                        CUtils.getclass4qname(retType.getName());
                    writer.write(
                        "\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
                            + CUtils.getXSDTypeForBasicType(containedType)
                            + ", \""
                            + returnParamName
                            + "\");\n");
                }
                else
                {
                    writer.write(
                        "\treturn pIWSSZ->addOutputParam(\""
                            + returnParamName
                            + "\", (void*)&ret, "
                            + CUtils.getXSDTypeForBasicType(outparamType)
                            + ");\n");
                }
            }
            else
            {
                if (returntypeisarray)
                {
                    Type arrayType = WrapperUtils.getArrayType(retType);
                    QName qname = arrayType.getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + returnParamName
                                + "\");\n");
                    }
                    else
                    {
                        if (arrayType.isSimpleType())
                        { //SimpleType in the schema
                            containedType =
                                CUtils.getclass4qname(arrayType.getBaseType());
                            writer.write(
                                "\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + returnParamName
                                    + "\");\n");
                        }
                        else
                        {
                            containedType = qname.getLocalPart();
                            writer.write(
                                "\treturn pIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&ret),"
                                    + "(void*) Axis_Serialize_"
                                    + containedType
                                    + ", (void*) Axis_Delete_"
                                    + containedType
                                    + ", (void*) Axis_GetSize_"
                                    + containedType
                                    + ", \""
                                    + returnParamName
                                    + "\", Axis_URI_"
                                    + containedType
                                    + ");\n");
                        }
                    }
                }
                else
                {
                    if (returntype.isAnyType())
                    {
                        writer.write(
                            "\treturn pIWSSZ->addOutputAnyObject(ret);\n");
                    }
                    else
                    {
                        //complex type
                        writer.write(
                            "\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"
                                + outparamType
                                + ", (void*)Axis_Delete_"
                                + outparamType
                                + ", \""
                                + returnParamName
                                + "\", Axis_URI_"
                                + outparamType
                                + ");\n");
                    }
                }
            }
        }
        else
        {
            if (isAllTreatedAsOutParams)
            {
                writer.write("\tpWs->" + methodName + "(");
                if (0 < paramsB.size())
                {
                    for (int i = 0; i < paramsB.size(); i++)
                    {
                        writer.write("v" + i + ",");
                    }
                }
                ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
                for (int i = 0; i < paramsC.size() - 1; i++)
                {
                    writer.write("&out" + i + ",");
                }
                writer.write("&out" + (paramsC.size() - 1));
                writer.write(");\n");
                paramsC = (ArrayList) minfo.getOutputParameterTypes();
                for (int i = 0; i < paramsC.size(); i++)
                {
                    ParameterInfo param = (ParameterInfo) paramsC.get(i);
                    retType =
                        wscontext.getTypemap().getType(param.getSchemaName());
                    if (retType != null)
                    {
                        if (retType.isSimpleType())
                        {
                            returntypeissimple = true;
                            outparamType =
                                CUtils.getclass4qname(retType.getBaseType());
                        }
                        else
                        {
                            outparamType = retType.getLanguageSpecificName();
                            returntypeisarray = retType.isArray();
                            returntypeissimple =
                                CUtils.isSimpleType(outparamType);
                        }
                    }
                    else
                    {
                        outparamType = param.getLangName();
                        returntypeissimple = CUtils.isSimpleType(outparamType);
                    }
                    returnParamName = param.getElementName().getLocalPart();
                    if (returntypeissimple)
                    {
                        if (param.isArray())
                        { /*parameters that are declared as arrays in the wrapping element.*/
                            String containedType =
                                CUtils.getclass4qname(retType.getName());
                            writer.write(
                                "\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + returnParamName
                                    + "\");\n");
                        }
                        else
                        {
                            writer.write(
                                "\tpIWSSZ->addOutputParam(\""
                                    + returnParamName
                                    + "\", (void*)&out"
                                    + i
                                    + ", "
                                    + CUtils.getXSDTypeForBasicType(outparamType)
                                    + ");\n");
                        }
                    }
                    else
                    {

                        if (returntypeisarray)
                        {
                            Type arrayType = WrapperUtils.getArrayType(retType);
                            QName qname = arrayType.getName();
                            String containedType = null;
                            if (CUtils.isSimpleType(qname))
                            {
                                containedType = CUtils.getclass4qname(qname);
                                writer.write(
                                    "\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
                                        + i
                                        + "),"
                                        + CUtils.getXSDTypeForBasicType(
                                            containedType)
                                        + ", \""
                                        + returnParamName
                                        + "\");\n");
                            }
                            else
                            {
                                if (arrayType.isSimpleType())
                                { //SimpleType in the schema
                                    containedType =
                                        CUtils.getclass4qname(
                                            arrayType.getBaseType());
                                    writer.write(
                                        "\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
                                            + i
                                            + "),"
                                            + CUtils.getXSDTypeForBasicType(
                                                containedType)
                                            + ", \""
                                            + returnParamName
                                            + "\");\n");
                                }
                                else
                                {
                                    containedType = qname.getLocalPart();
                                    writer.write(
                                        "\tpIWSSZ->addOutputCmplxArrayParam((Axis_Array*)(&out"
                                            + i
                                            + "),"
                                            + "(void*) Axis_Serialize_"
                                            + containedType
                                            + ", (void*) Axis_Delete_"
                                            + containedType
                                            + ", (void*) Axis_GetSize_"
                                            + containedType
                                            + ", \""
                                            + returnParamName
                                            + "\", Axis_URI_"
                                            + containedType
                                            + ");\n");
                                }
                            }
                        }
                        else
                        {
                            if (param.isAnyType())
                            {
                                //anyType
                                writer.write(
                                    "\tpIWSSZ->addOutputAnyObject(out"
                                        + i
                                        + ");\n");
                            }
                            else
                            {
                                //complex type
                                writer.write(
                                    "\tpIWSSZ->addOutputCmplxParam(out"
                                        + i
                                        + ", (void*)Axis_Serialize_"
                                        + outparamType
                                        + ", (void*)Axis_Delete_"
                                        + outparamType
                                        + ", \""
                                        + returnParamName
                                        + "\", Axis_URI_"
                                        + outparamType
                                        + ");\n");
                            }
                        }
                    }
                }
                writer.write("\treturn AXIS_SUCCESS;\n");
            }
            else
            { //method does not return anything
                /* Invoke the service when return type is void */
                writer.write("\tpWs->" + methodName + "(");
                if (0 < paramsB.size())
                {
                    for (int i = 0; i < paramsB.size() - 1; i++)
                    {
                        writer.write("v" + i + ",");
                    }
                    writer.write("v" + (paramsB.size() - 1));
                }
                writer.write(");\n");
                writer.write("\treturn AXIS_SUCCESS;\n");
            }
        }
        writer.write("\t}\n"); //nithya         
        Iterator paramsFault = minfo.getFaultType().iterator();
        String faultInfoName = null;
        String faultType = null;
        String langName = null;
        String paramName = null;
        while (paramsFault.hasNext())
        {
            FaultInfo info = (FaultInfo) paramsFault.next();
            faultInfoName = info.getFaultInfo();
            ArrayList paramInfo = info.getParams();
            for (int i = 0; i < paramInfo.size(); i++)
            {
                ParameterInfo par = (ParameterInfo) paramInfo.get(i);
                paramName = par.getParamName();
                langName = par.getLangName();
                faultType =
                    WrapperUtils.getClassNameFromParamInfoConsideringArrays(
                        par,
                        wscontext);
                writeExceptions(faultType, faultInfoName, paramName, langName);
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

    public void writeMethodInWrapper(MethodInfo minfo)
        throws WrapperFault, IOException
    {
        boolean isAllTreatedAsOutParams = false;
        ParameterInfo returntype = null;
        int noOfOutParams = minfo.getOutputParameterTypes().size();
        if (0 == noOfOutParams)
        {
            returntype = null;
        }
        else
        {

            if (1 == noOfOutParams)
            {
                returntype =
                    (ParameterInfo) minfo
                        .getOutputParameterTypes()
                        .iterator()
                        .next();
            }
            else
            {
                isAllTreatedAsOutParams = true;
            }
        }
        Collection params = minfo.getInputParameterTypes();
        String methodName = minfo.getMethodname();
        Type retType = null;
        boolean returntypeissimple = false;
        boolean returntypeisarray = false;
        String outparamType = null;
        if (returntype != null)
        {
            retType =
                wscontext.getTypemap().getType(returntype.getSchemaName());
        }
        if (retType != null)
        {
            if (retType.isSimpleType())
            {
                outparamType = CUtils.getclass4qname(retType.getBaseType());
            }
            else
            {
                outparamType = retType.getLanguageSpecificName();
            }
            returntypeisarray = retType.isArray();
        }
        else
        {

            if (returntype != null)
            {
                outparamType = returntype.getLangName();
            }
        }
        if (returntype != null)
        {
            returntypeissimple = CUtils.isSimpleType(outparamType);
        }
        writer.write("\n/*\n");
        writer.write(
            " * This method wrap the service method" + methodName + "\n");
        writer.write(" */\n");
        //method signature
        String paraTypeName;
        boolean typeisarray = false;
        boolean typeissimple = false;
        Type type;
        if (returntype == null)
        {
            writer.write("void");
        }
        else
        {
            if (returntypeissimple || returntypeisarray)
            {
                writer.write(outparamType);
            }
            else
            { //for AnyType too
                writer.write(outparamType + "*");
            }
        }
        writer.write(" " + classname + "::" + methodName + "(");
        ArrayList paramsB = (ArrayList) params;
        if (0 < paramsB.size())
        {
            type =
                wscontext.getTypemap().getType(
                    ((ParameterInfo) paramsB.get(0)).getSchemaName());
            if (type != null)
            {
                if (type.isSimpleType())
                { //schema defined simpleType
                    paraTypeName = CUtils.getclass4qname(type.getBaseType());
                }
                else
                {
                    paraTypeName = type.getLanguageSpecificName();
                }
                typeisarray = type.isArray();
            }
            else
            {
                paraTypeName = ((ParameterInfo) paramsB.get(0)).getLangName();
                typeisarray = false;
            }
            typeissimple = CUtils.isSimpleType(paraTypeName);
            if (typeisarray || typeissimple)
            {
                writer.write(paraTypeName + " Value0");
            }
            else
            { //for AnyType too
                writer.write(paraTypeName + "* Value0");
            }
            for (int i = 1; i < paramsB.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsB.get(i)).getSchemaName());
                if (type != null)
                {
                    if (type.isSimpleType())
                    { //schema defined simpleType
                        paraTypeName =
                            CUtils.getclass4qname(type.getBaseType());
                    }
                    else
                    {
                        paraTypeName = type.getLanguageSpecificName();
                    }
                    typeisarray = type.isArray();
                }
                else
                {
                    paraTypeName =
                        ((ParameterInfo) paramsB.get(i)).getLangName();
                    typeisarray = false;
                }
                typeissimple = CUtils.isSimpleType(paraTypeName);
                if (typeisarray || typeissimple)
                {
                    writer.write(", " + paraTypeName + " Value" + i);
                }
                else
                { //for AnyType too
                    writer.write(", " + paraTypeName + "* Value" + i);
                }
            }
        }

        // Multiples parameters so fill the methods prototype
        ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
        if (isAllTreatedAsOutParams)
        {
            for (int i = 0; i < paramsC.size(); i++)
            {
                type =
                    wscontext.getTypemap().getType(
                        ((ParameterInfo) paramsC.get(i)).getSchemaName());
                writer.write(
                    ", AXIS_OUT_PARAM  "
                        + WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            (ParameterInfo) paramsC.get(i),
                            wscontext)
                        + "* OutValue"
                        + i);
            }
        }

        writer.write(")\n{\n");
        if (returntype != null)
        {
            writer.write("\t");
            if (returntypeisarray)
            {
                //for arrays
                writer.write(outparamType + " RetArray = {NULL, 0};\n");
            }
            else
            {

                if (!returntypeissimple)
                { //for AnyType too
                    writer.write(outparamType + "* pReturn = NULL;\n");
                    //for complex types
                }
                else
                {
                    //for simple types
                    String initValue = CUtils.getInitValue(outparamType);
                    if (initValue != null)
                    {
                        writer.write(
                            outparamType + " Ret = " + initValue + ";\n");
                    }
                    else
                    {

                        if (outparamType.equals("xsd__base64Binary")
                            || outparamType.equals("xsd__hexBinary"))
                        {
                            writer.write(outparamType + " Ret;\n");
                            writer.write("\tRet.__ptr = NULL;\n");
                            writer.write("\tRet.__size = 0;\n");
                        }
                        else
                        {
                            writer.write(outparamType + " Ret;\n");
                        }
                    }
                }
                //TODO initialize return parameter appropriately.
            }
        }
        writer.write("\tconst char* pcCmplxFaultName;\n");
        writer.write("\ttry\n\t{");

        writer.write(
            "\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER"
                + ")) return ");
        if (returntype != null)
        {
            writer.write(
                (returntypeisarray
                    ? "RetArray"
                    : returntypeissimple
                    ? "Ret"
                    : "pReturn")
                    + ";\n\t");
        }
        else
        {
            writer.write(";\n");
        }
        writer.write(
            "\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
                + minfo.getSoapAction()
                + "\");\n");
        writer.write("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
        //TODO check which version is it really.
        writer.write(
            "\tm_pCall->setOperation(\""
                + minfo.getInputMessage().getLocalPart()
                + "\", \""
                + minfo.getInputMessage().getNamespaceURI()
                + "\");\n");

        // Add attributes to soap method
        for (int i = 0; i < paramsB.size(); i++)
        {
            ParameterInfo param = (ParameterInfo) paramsB.get(i);
            if (param.isAttribute())
            {
                String elementType = param.getElementName().getLocalPart();

                if ("string".equals(elementType))
                {
                    writer.write(
                        "\tsetSOAPMethodAttribute(\""
                            + param.getParamName()
                            + "\", \"\", Value"
                            + i
                            + ");\n");
                }
                else
                {
                    if ("int".equals(elementType))
                    {
                        writer.write("\t{\n");
                        writer.write("\t\tchar buffer[20];\n");
                        writer.write(
                            "\t\tsprintf(buffer,\"%d\", Value" + i + ");\n");
                        writer.write(
                            "\t\tsetSOAPMethodAttribute(\""
                                + param.getParamName()
                                + "\", \"\", buffer);\n");
                        writer.write("\t}\n");
                    }
                }
            }
        }

        //new calls from stub base
        writer.write("\tincludeSecure();\n"); // FJP - SecureChannel
        writer.write("\tapplyUserPreferences();\n");

        for (int i = 0; i < paramsB.size(); i++)
        {
            ParameterInfo param = (ParameterInfo) paramsB.get(i);

            // Ignore attributes, while adding elements
            if (!param.isAttribute())
            {
                type = wscontext.getTypemap().getType(param.getSchemaName());
                if (type != null)
                {
                    if (type.isSimpleType())
                    { //schema defined simpleType possibly with restrictions
                        paraTypeName =
                            CUtils.getclass4qname(type.getBaseType());
                    }
                    else
                    {
                        paraTypeName = type.getLanguageSpecificName();
                    }
                    typeisarray = type.isArray();
                }
                else
                {
                    paraTypeName =
                        ((ParameterInfo) paramsB.get(i)).getLangName();
                    typeisarray = false;
                }

                if (param.isAnyType())
                {
                    //for anyType
                    writer.write("\tm_pCall->addAnyObject(Value" + i);
                }
                else
                {
                    //String parameterName = ((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart();
                    //Samisa 22/08/2004
                    String parameterName =
                        ((ParameterInfo) paramsB.get(i))
                            .getElementNameAsString();
                    //Samisa
                    String namespace =
                        ((ParameterInfo) paramsB.get(i))
                            .getElementName()
                            .getNamespaceURI();

          if (namespace.length() == 0)
          {
            writer.write(
              "\tchar cPrefixAndParamName"
                + i
                + "["
                + "] = \""
                + parameterName
                + "\";\n");
          }
          else
          {
            int stringLength = 8 + 1 + parameterName.length() + 1;
            writer.write(
              "\tchar cPrefixAndParamName"
              + i
              + "["
              + stringLength
              + "];\n");
            writer.write(
              "\tsprintf( cPrefixAndParamName"
                + i
                + ", \"%s:"
                + parameterName
                + "\", getNamespacePrefix(\""
                + namespace
                + "\"));\n");
          }

                    if (typeisarray)
                    {
                        // Array
                        Type arrayType = WrapperUtils.getArrayType(type);
                        QName qname = arrayType.getName();
                        if (CUtils.isSimpleType(qname))
                        {
                            // Array of simple type
                            String containedType = CUtils.getclass4qname(qname);
                            writer.write("\tm_pCall->addBasicArrayParameter(");
                            writer.write(
                                "(Axis_Array*)(&Value"
                                    + i
                                    + "), "
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", cPrefixAndParamName"
                                    + i);
                        }
                        else
                        {
                            if (arrayType.isSimpleType())
                            {
                                // Simple type in the schema
                                String containedType =
                                    CUtils.getclass4qname(
                                        arrayType.getBaseType());
                                writer.write(
                                    "\tm_pCall->addBasicArrayParameter(");
                                writer.write(
                                    "(Axis_Array*)(&Value"
                                        + i
                                        + "), "
                                        + CUtils.getXSDTypeForBasicType(
                                            containedType)
                                        + ", cPrefixAndParamName"
                                        + i);
                            }
                            else
                            {
                                // Array of complex type
                                String containedType = qname.getLocalPart();
                                writer.write(
                                    "\tm_pCall->addCmplxArrayParameter(");
                                writer.write(
                                    "(Axis_Array*)(&Value"
                                        + i
                                        + "), (void*)Axis_Serialize_"
                                        + containedType
                                        + ", (void*)Axis_Delete_"
                                        + containedType
                                        + ", (void*) Axis_GetSize_"
                                        + containedType
                                        + ", \""
                                        + parameterName
                                        + "\""
                                        + ", Axis_URI_"
                                        + containedType);
                            }
                        }
                    }
                    else
                    {
                        if (CUtils.isSimpleType(paraTypeName))
                        {
                            // Simple Type
                            writer.write("\tm_pCall->addParameter(");
                            writer.write(
                                "(void*)&Value"
                                    + i
                                    + ", cPrefixAndParamName"
                                    + i
                                    + ", "
                                    + CUtils.getXSDTypeForBasicType(
                                        paraTypeName));
                        }
                        else
                        {
                            // Complex Type
                            writer.write("\tm_pCall->addCmplxParameter(");
                            writer.write(
                                "Value"
                                    + i
                                    + ", (void*)Axis_Serialize_"
                                    + paraTypeName
                                    + ", (void*)Axis_Delete_"
                                    + paraTypeName
                                    + ", cPrefixAndParamName"
                                    + i
                                    + ", Axis_URI_"
                                    + paraTypeName);
                        }
                    }
                }
                // Adrian - end of namespace correction
                writer.write(");\n");
            }
        }
        writer.write("\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t{\n");
        if (minfo.getOutputMessage() != null)
        {
            writer.write(
                "\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
                    + minfo.getOutputMessage().getLocalPart()
                    + "\", \""
                    + minfo.getOutputMessage().getNamespaceURI()
                    + "\"))\n\t\t{\n");
        }
        if (isAllTreatedAsOutParams)
        {
            String currentParamName;
            String currentParaType;
            for (int i = 0; i < paramsC.size(); i++)
            {
                ParameterInfo currentType = (ParameterInfo) paramsC.get(i);
                type =
                    wscontext.getTypemap().getType(currentType.getSchemaName());
                if (type != null)
                {
                    if (type.isSimpleType())
                    {
                        currentParaType =
                            CUtils.getclass4qname(type.getBaseType());
                    }
                    else
                    {
                        currentParaType = type.getLanguageSpecificName();
                    }
                    typeisarray = type.isArray();
                }
                else
                {
                    currentParaType =
                        ((ParameterInfo) paramsC.get(i)).getLangName();
                    typeisarray = false;
                }
                typeissimple = CUtils.isSimpleType(currentParaType);

                currentParamName = "*OutValue" + i;
                // Some code need to be merged as we have some duplicated in coding here.
                if (typeisarray)
                {
                    Type arrayType = WrapperUtils.getArrayType(type);
                    QName qname = arrayType.getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\t\t\t"
                                + currentParamName
                                + " = ("
                                + currentParaType
                                + "&)m_pCall->getBasicArray("
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + currentType.getElementName().getLocalPart()
                                + "\", 0);\n");
                    }
                    else
                    {

                        if (arrayType.isSimpleType())
                        { //SimpleType in the schema
                            containedType =
                                CUtils.getclass4qname(arrayType.getBaseType());
                            writer.write(
                                "\t\t\t"
                                    + currentParamName
                                    + " = ("
                                    + currentParaType
                                    + "&)m_pCall->getBasicArray("
                                    + CUtils.getXSDTypeForBasicType(
                                        containedType)
                                    + ", \""
                                    + currentType.getElementName().getLocalPart()
                                    + "\", 0);\n");
                        }
                        else
                        {
                            containedType = qname.getLocalPart();
                            writer.write(
                                "\t\t\tAxis_Array arr2 = m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
                                    + containedType);
                            //writer.write(", (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+currentType.getElementName().getLocalPart()+"\", Axis_URI_"+containedType+");\n");
                            writer.write(
                                ", (void*) Axis_Create_"
                                    + containedType
                                    + ", (void*) Axis_Delete_"
                                    + containedType
                                    + ", (void*) Axis_GetSize_"
                                    + containedType
                                    + ", \""
                                    + currentType.getElementNameAsString()
                                    + "\", Axis_URI_"
                                    + containedType
                                    + ");\n\t\t\t"
                                    + currentParamName
                                    + " = ("
                                    + currentParaType
                                    + "&)arr2;\n");
                        }
                    }
                }
                else
                {

                    if (typeissimple)
                    {
                        writer.write(
                            "\t\t\t"
                                + currentParamName
                                + " = m_pCall->"
                                + CUtils.getParameterGetValueMethodName(
                                    currentParaType,
                                    false)
                                + "(\""
                                + currentType.getParamName()
                                + "\", 0);\n");
                    }
                    else
                    {

                        if (currentType.isAnyType())
                        {
                            //for anyTtype
                            writer.write(
                                "\t\t\t"
                                    + currentParamName
                                    + " = ("
                                    + currentParaType
                                    + "*)m_pCall->getAnyObject();\n");
                        }
                        else
                        {
                            //writer.write("\t\t\t" + currentParamName + " = ("+currentParaType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+currentParaType+", (void*) Axis_Create_"+currentParaType+", (void*) Axis_Delete_"+currentParaType+",\""+currentType.getElementName().getLocalPart()+"\", 0);\n");
                            //Samisa 22/08/2004
                            writer.write(
                                "\t\t\t"
                                    + currentParamName
                                    + " = ("
                                    + currentParaType
                                    + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
                                    + currentParaType
                                    + ", (void*) Axis_Create_"
                                    + currentParaType
                                    + ", (void*) Axis_Delete_"
                                    + currentParaType
                                    + ",\""
                                    + currentType.getElementNameAsString()
                                    + "\", 0);\n");
                            //Samisa
                        }
                    }
                }
            }
            writer.write("\t\t}\n");
            writer.write("\t}\n");
            writer.write("\tm_pCall->unInitialize();\n");
        }
        else
        {
            if (returntype == null)
            {
                if (minfo.getOutputMessage() != null)
                {
                    writer.write("\t\t\t/*not successful*/\n\t\t}\n");
                }
                writer.write("\t}\n");
                writer.write("\tm_pCall->unInitialize();\n");
                //writer.write("\t}\n\tm_pCall->unInitialize();\n");
            }
            else
            {

                if (returntypeisarray)
                {
                    QName qname = WrapperUtils.getArrayType(retType).getName();
                    String containedType = null;
                    if (CUtils.isSimpleType(qname))
                    {
                        containedType = CUtils.getclass4qname(qname);
                        writer.write(
                            "\tRetArray = ("
                                + outparamType
                                + "&)m_pCall->getBasicArray("
                                + CUtils.getXSDTypeForBasicType(containedType)
                                + ", \""
                                + returntype.getElementName().getLocalPart()
                                + "\", 0);\n\t\t}\n");
                    }
                    else
                    {
                        containedType = qname.getLocalPart();
                        writer.write(
                            "\tAxis_Array arr2 = m_pCall->getCmplxArray((void*) Axis_DeSerialize_"
                                + containedType);
                        //writer.write(", (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returntype.getElementName().getLocalPart()+"\", Axis_URI_"+containedType+");\n\t\t}\n");
                        writer.write(
                            ", (void*) Axis_Create_"
                                + containedType
                                + ", (void*) Axis_Delete_"
                                + containedType
                                + ", (void*) Axis_GetSize_"
                                + containedType
                                + ", \""
                                + returntype.getElementNameAsString()
                                + "\", Axis_URI_"
                                + containedType
                                + ");\n\t\t\tRetArray = ("
                                    + outparamType
                                    + "&)arr2;\n\t\t}\n");
                    }
                    writer.write("\t}\n");
                    writer.write("\tm_pCall->unInitialize();\n");
                    //        writer.write("\t}\n\tm_pCall->unInitialize();\n");
                    writer.write("\treturn RetArray;\n");
                }
                else
                {

                    if (returntypeissimple)
                    {
                        writer.write(
                            "\t\t\tRet = m_pCall->"
                                + CUtils.getParameterGetValueMethodName(
                                    outparamType,
                                    false)
                                + "(\""
                                + returntype.getParamName()
                                + "\", 0);\n\t\t}\n");
                        writer.write("\t}\n");
                        writer.write("\tm_pCall->unInitialize();\n");
                        //            writer.write("\t}\n\tm_pCall->unInitialize();\n");
                        writer.write("\treturn Ret;\n");
                    }
                    else
                    {

                        if (returntype.isAnyType())
                        {
                            //for anyTtype
                            writer.write(
                                "\t\t\tpReturn = ("
                                    + outparamType
                                    + "*)m_pCall->getAnyObject();\n\t\t}\n");
                            writer.write("\t}\n");
                            writer.write("\tm_pCall->unInitialize();\n");
                            //                writer.write("\t}\n\tm_pCall->unInitialize();\n");
                            writer.write("\treturn pReturn;\n");
                        }
                        else
                        {
                            //writer.write("\t\t\tpReturn = ("+outparamType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+outparamType+", (void*) Axis_Create_"+outparamType+", (void*) Axis_Delete_"+outparamType+",\""+returntype.getElementName().getLocalPart()+"\", 0);\n\t\t}\n");
                            //Samisa 22/08/2004
                            writer.write(
                                "\t\t\tpReturn = ("
                                    + outparamType
                                    + "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
                                    + outparamType
                                    + ", (void*) Axis_Create_"
                                    + outparamType
                                    + ", (void*) Axis_Delete_"
                                    + outparamType
                                    + ",\""
                                    + returntype.getElementNameAsString()
                                    + "\", 0);\n\t\t}\n");
                            //Samisa
                            writer.write("\t}\n");
                            writer.write("\tm_pCall->unInitialize();\n");
                            //                writer.write("\t}\n\tm_pCall->unInitialize();\n");
                            writer.write("\treturn pReturn;\n");
                        }
                    }
                }
            }
        }
        //added by nithya

        writer.write("\t}\n");
        writer.write("\tcatch(AxisException& e)\n\t{\n");
        writer.write("\t\tint iExceptionCode = e.getExceptionCode();\n");
        writer.write(
            "\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n");
        writer.write("\t\t{\n");
        writer.write(
            "\t\t\tthrow "
                + wscontext.getSerInfo().getServicename()
                + "_AxisClientException(e.what());\n");
        writer.write("\t\t}\n");
        writer.write(
            "\t\tISoapFault* pSoapFault = (ISoapFault*) m_pCall->checkFault(\"Fault\",\""
                + wscontext.getWrapInfo().getTargetEndpointURI()
                + "\" );\n");
        writer.write("\t\tif(pSoapFault)\n");
        writer.write("\t\t{\n");

        //to get fault info     
        Iterator paramsFault = minfo.getFaultType().iterator();
        String faultInfoName = null;
        String faultType = null;
        String langName = null;
        String paramName = null;
        boolean flag = false;
        int j = 0;
        if (!paramsFault.hasNext())
        {
            writer.write("\tm_pCall->unInitialize();\n");
            //writer.write("\t\t\tm_pCall->unInitialize();\n");
            writer.write(
                "\t\t\tthrow "
                    + wscontext.getSerInfo().getServicename()
                    + "_AxisClientException(pSoapFault);\n");
        }
        else
        {
            flag = true;
            writer.write(
                "\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName().c_str();\n");
        }
        while (paramsFault.hasNext())
        {
            j = j + 1;
            FaultInfo info = (FaultInfo) paramsFault.next();
            faultInfoName = info.getFaultInfo();

            // FJP - D0004 > Looking through the list of attributes for the 'error' part of
            //               the fault message.  If found, update the faultInfoName with the
            //               'localname' of the qname of the attribute.       
            Iterator infoArrayListIterator = info.getParams().iterator();
            boolean found = false;

            while (infoArrayListIterator.hasNext() && !found)
            {
                ParameterInfo paramInfo =
                    (ParameterInfo) infoArrayListIterator.next();

                if (paramInfo != null)
                {
                    if ("error".equals(paramInfo.getParamName()))
                    {
                        faultInfoName =
                            paramInfo.getElementName().getLocalPart();

                        found = true;
                    }
                }
            }
            // FJP - D0004 <       

            ArrayList paramInfo = info.getParams();
            for (int i = 0; i < paramInfo.size(); i++)
            {
                ParameterInfo par = (ParameterInfo) paramInfo.get(i);
                paramName = par.getParamName();
                langName = par.getLangName();
                faultType =
                    WrapperUtils.getClassNameFromParamInfoConsideringArrays(
                        par,
                        wscontext);
                if (j > 1)
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

            writer.write("\n");
            for (int i = 0; i < methods.size(); i++)
            {
                minfo = (MethodInfo) this.methods.get(i);
                boolean isAllTreatedAsOutParams = false;
                ParameterInfo returntype = null;
                int noOfOutParams = minfo.getOutputParameterTypes().size();
                if (0 == noOfOutParams)
                {
                    returntype = null;
                    writer.write("void ");
                }
                else
                {
                    if (1 == noOfOutParams)
                    {
                        returntype =
                            (ParameterInfo) minfo
                                .getOutputParameterTypes()
                                .iterator()
                                .next();
                        writer.write(
                            WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                returntype,
                                wscontext)
                                + " ");
                    }
                    else
                    {
                        isAllTreatedAsOutParams = true;
                        writer.write("void ");
                    }
                }
                writer.write(classname + "::" + minfo.getMethodname() + "(");
                //write parameter names
                Iterator params = minfo.getInputParameterTypes().iterator();
                if (params.hasNext())
                {
                    ParameterInfo fparam = (ParameterInfo) params.next();
                    writer.write(
                        WrapperUtils
                            .getClassNameFromParamInfoConsideringArrays(
                            fparam,
                            wscontext)
                            + " Value"
                            + 0);
                }
                for (int j = 1; params.hasNext(); j++)
                {
                    ParameterInfo nparam = (ParameterInfo) params.next();
                    writer.write(
                        ", "
                            + WrapperUtils
                                .getClassNameFromParamInfoConsideringArrays(
                                nparam,
                                wscontext)
                            + " Value"
                            + j);
                }
                if (isAllTreatedAsOutParams)
                {
                    params = minfo.getOutputParameterTypes().iterator();
                    for (int j = 0; params.hasNext(); j++)
                    {
                        ParameterInfo nparam = (ParameterInfo) params.next();
                        writer.write(
                            ", AXIS_OUT_PARAM "
                                + WrapperUtils
                                    .getClassNameFromParamInfoConsideringArrays(
                                    nparam,
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

        Iterator oplist = porttype.getOperations().iterator();
        ArrayList methods = new ArrayList();
        MethodInfo minfo;
    Element element;
    QName qname;
        ParameterInfo pinfo;
    Type type;
        org.apache.axis.wsdl.symbolTable.Type ptype;
        //for each operation
        while (oplist.hasNext()) {
            minfo = new MethodInfo();
            methods.add(minfo);
            //add operation to operation List
            Operation op = (Operation) oplist.next();
            minfo.setMethodname(op.getName());
            System.out.println(op.getName()+"operation name .......................&&&&&&&&&&&");
            //setting the faults
            Map faults = op.getFaults();
      addFaultInfo(faults,minfo);
           
           
           
            Iterator paramlist = null;
            //add each parameter to parameter list
            if ("document".equals(bindingEntry.getBindingStyle().getName())){
        paramlist = op.getInput().getMessage().getParts().values().iterator();
        Part part = (Part) paramlist.next();
        QName minfoqname;
        element = symbolTable.getElement(part.getElementName());
        if ( element == null ) {
          // the part reference a type.
          qname =  symbolTable.getType(part.getTypeName()).getQName();
          minfoqname = symbolTable.getType(part.getTypeName()).getQName();
        }
        else {
          qname = element.getRefType().getQName();
          minfoqname = element.getQName();
        }
        if (qname != null){
          minfo.setInputMessage(minfoqname);
          System.out.println(minfoqname.getLocalPart()+"setInputMessage.............?????????????");
          type = this.typeMap.getType(qname);
          boolean wrapped = true; //TODO take this from a commandline argument
          if (wrapped){
            if(type == null)
               throw new WrapperFault("unregisterd type "+qname+" refered");
            else{
              /* if(type.getLanguageSpecificName().startsWith(">")){*/ //anyway skip the wrapping element type even if it is a named type.
              //get inner attributes and elements and add them as parameters
              ArrayList elementlist = new ArrayList();
              Iterator names = type.getElementnames();
              while (names.hasNext()){
                elementlist.add(names.next());
              }
              Type innerType;
              for (int i = 0 ; i < elementlist.size(); i++) {
                String elementname = (String)elementlist.get(i);
                innerType = type.getElementForElementName(elementname).getType();
                pinfo = new ParameterInfo(innerType,elementname);
                pinfo.setElementName(type.getElementForElementName(elementname).getName());
                if (innerType.getName().equals(CUtils.anyTypeQname))
                  pinfo.setAnyType(true);
                minfo.addInputParameter(pinfo);   
              }
              //remove the type that represents the wrapping element so that such type is not created.
              this.typeMap.removeType(qname);
            }
          }
          else{
           
          }
        }
        }
          else{
        minfo.setInputMessage(op.getInput().getMessage().getQName());
             if (op.getParameterOrdering() != null){
               for (int ix=0; ix < op.getParameterOrdering().size(); ix++){
            Part p = (Part)(op.getInput().getMessage().getParts().get((String)op.getParameterOrdering().get(ix)));
            if (p == null) continue;
            pinfo = createParameterInfo(p);
            if (null != pinfo) minfo.addInputParameter(pinfo);
               }
             }
             else {
          paramlist = op.getInput().getMessage().getParts().values().iterator();
          while (paramlist.hasNext()) { //RPC style messages can have multiple parts
            Part p = (Part) paramlist.next();
            pinfo = createParameterInfo(p);
            if (null != pinfo) minfo.addInputParameter(pinfo);
          }              
             }
           }
            //get the return type
      if(op.getOutput()!=null){
              Iterator returnlist = op.getOutput().getMessage().getParts().values().iterator();
        if (returnlist.hasNext() && "document".equals(bindingEntry.getBindingStyle().getName())){
          Part part = (Part) returnlist.next();
          QName minfoqname;
          element = symbolTable.getElement(part.getElementName());
          if ( element == null ) {
            // the part reference a type.
            qname =  symbolTable.getType(part.getTypeName()).getQName();
            minfoqname = symbolTable.getType(part.getTypeName()).getQName();
          }
          else {
            qname = element.getRefType().getQName();
            minfoqname = element.getQName();
          }
          if (qname != null){
            minfo.setOutputMessage(minfoqname);
            type = this.typeMap.getType(qname);       
            boolean wrapped = true; //TODO take this from a commandline argument
            if (wrapped){
              if(type == null)
                 throw new WrapperFault("unregisterd type "+qname+" refered");
              else{
                /*if(type.getLanguageSpecificName().startsWith(">")){*///anyway skip the wrapping element type even if it is a named type.
                //get inner attributes and elements and add them as parameters
                ArrayList elementlist = new ArrayList();
                Iterator names = type.getElementnames();
                while (names.hasNext()){
                  elementlist.add(names.next());
                }
                Type innerType;
                for (int i = 0 ; i < elementlist.size(); i++) {
                  String elementname = (String)elementlist.get(i);
                  innerType = type.getElementForElementName(elementname).getType();
                  pinfo = new ParameterInfo(innerType,elementname);
                  pinfo.setElementName(type.getElementForElementName(elementname).getName());
                  if (innerType.getName().equals(CUtils.anyTypeQname))
                    pinfo.setAnyType(true);
                  minfo.addOutputParameter(pinfo);   
                }             
                //remove the type that represents the wrapping element so that such type is not created.             
                this.typeMap.removeType(qname);
              }
View Full Code Here

Examples of org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo

    }
    TypeEntry tentry = symbolTable.getType(qname);   
    Type type = this.typeMap.getType(qname);
    if(type == null)
      throw new WrapperFault("unregisterd type "+qname+" refered");
    ParameterInfo parainfo =
      new ParameterInfo(type,part.getName());
    parainfo.setElementName(part.getElementName());   
    return parainfo;
  }
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.