Package org.apache.axis.wsdl.wsdl2ws.info

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


    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 ) {
      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(outparamType+" RetArray = {NULL, 0};\n");
      }else if(!returntypeissimple){ //for AnyType too
        writer.write(outparamType+"* pReturn = NULL;\n");
        //for complex types
      }else{
        //for simple types
        writer.write(outparamType+" Ret;\n");
        //TODO initialize return parameter appropriately.
      }
    }
    String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))?
                    "SSL_CHANNEL" : "NORMAL_CHANNEL"
     writer.write("\tconst char* pcCmplxFaultName;\n");
         writer.write("\ttry\n\t{");
   
    writer.write("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER, "+channelSecurityType+")) 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");
    //new calls from stub base
    writer.write("\tapplyUserPreferences();\n");
   
    for (int i = 0; i < paramsB.size(); i++) {
      ParameterInfo param = (ParameterInfo)paramsB.get(i);
      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;
      }
      typeissimple = CUtils.isSimpleType(paraTypeName);
      if(typeisarray){
        //arrays
        Type arrayType = WrapperUtils.getArrayType(type);
        QName qname = arrayType.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)).getElementName().getLocalPart()+"\"");         
        }
        else if (arrayType.isSimpleType()){//SimpleType in the schema
          containedType = CUtils.getclass4qname(arrayType.getBaseType());
          writer.write("\tm_pCall->addBasicArrayParameter(");     
          writer.write("(Axis_Array*)(&Value"+i+"), "+CUtils.getXSDTypeForBasicType(containedType)+", \""+((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart()+"\"");         
        }
        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)).getElementName().getLocalPart()+"\", Axis_URI_"+containedType);
        }
      }else if(typeissimple){
        //for simple types 
        writer.write("\tm_pCall->addParameter(");     
        writer.write("(void*)&Value"+i+", \"" + ((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart()+"\", "+CUtils.getXSDTypeForBasicType(paraTypeName));
      }else if (param.isAnyType()){
        //for anyTtype
        writer.write("\tm_pCall->addAnyObject(Value"+i);
      }else{
        //for complex types
        writer.write("\tm_pCall->addCmplxParameter(");     
        writer.write("Value"+i+", (void*)Axis_Serialize_"+paraTypeName+", (void*)Axis_Delete_"+paraTypeName+", \"" + ((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart()+"\", Axis_URI_"+paraTypeName);
      }
      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\t" + currentParamName + " = ("+currentParaType+"&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"+containedType);
View Full Code Here


   */
  protected void writeGlobalCodes() throws WrapperFault {
    Iterator types = wscontext.getTypemap().getTypes().iterator();
    HashSet typeSet = new HashSet();
    String typeName;
    Type type;
    try {
      while(types.hasNext()){
        type = (Type)types.next();
        if (type.isSimpleType()) continue;
        if (type.isArray()) continue;
        typeName = type.getLanguageSpecificName();
        if (typeName.startsWith(">")) continue;
        typeSet.add(typeName);
      }
      Iterator itr = typeSet.iterator();
      while(itr.hasNext())
View Full Code Here

    {
        if (param.getType().getName().equals(CUtils.anyTypeQname))
        { //anyType
            return "AnyType*";
        }
        Type type = wscontext.getTypemap().getType(param.getSchemaName());
        if (type.isSimpleType())
        {
            return param.getLangName();
        }
        else
        {
            if (!TypeMap.isSimpleType(param.getSchemaName()))
            { //array or complex types
                if (type.isArray())
                {
                    String arrayName =
                        CUtils.getCmplxArrayNameforType(
                            getArrayType(type).getName());
                    if (null == arrayName)
                    { //simple type array
                        /* Does the program flow ever come to this place ? if so in which situation ? - Susantha 20/10/2004 */
                        arrayName =
                            CUtils.getBasicArrayNameforType(
                                CUtils.getclass4qname(
                                    getArrayType(type).getName()));
                    }
                    return arrayName;
                }
                else
                {
                    return param.getLangName() + "*";
                    //All complex types will be pointers 
                }
            }
            else
            {
                if (param.isArray())
                {
                    /* This enables having simple type array declarations in the wrapping element
                     * <s:element name="GetProjectNamesResponse">
                      <s:complexType>
                        <s:sequence>
                          <s:element minOccurs="0" maxOccurs="unbounded" form="unqualified" name="return" type="s:string" />
                        </s:sequence>
                      </s:complexType>
                    </s:element>
                     */
                    return CUtils.getBasicArrayNameforType(
                        CUtils.getclass4qname(type.getName()));
                }
                else
                {
                    return param.getLangName();
                }
View Full Code Here

        throws WrapperFault
    {
        Element element;
        QName qname;
        ParameterInfo pinfo;
        Type type;
        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();
        }
        minfo.setOutputMessage(minfoqname);

        if (qname != null)
        {
            type = this.typeMap.getType(qname);
            //boolean wrapped = true; //TODO take this from a commandline argument
            boolean wrapped = wsdlWrappingStyle;

            if (type == null)
            {
                throw new WrapperFault(
                    "Unregistered type " + qname + " referred");
            }

            if (wrapped)
            {
                //get inner attributes and elements and add them as parameters
                addOutputElementsToMethodInfo(minfo, type);
            }
            else
            { // for non-wrapped style wsdl's
                // String elementName = (String)type.getName().toString();
                String elementName = (String) element.getQName().getLocalPart();
                symbolTable.dump(System.out);
                pinfo = new ParameterInfo(type, elementName);
                pinfo.setElementName(type.getName());
                if (type.getName().equals(CUtils.anyTypeQname))
                    pinfo.setAnyType(true);
                minfo.addOutputParameter(pinfo);

            }
        }
View Full Code Here

        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);
            eleinfo = type.getElementForElementName(elementname);
            innerType = eleinfo.getType();
            pinfo = new ParameterInfo(innerType, elementname);
            if (eleinfo.getMaxOccurs() > 1)
            {
                pinfo.setArray(true);
            }
            pinfo.setElementName(
                type.getElementForElementName(elementname).getName());
            if (innerType.getName().equals(CUtils.anyTypeQname))
            {
                pinfo.setAnyType(true);
            }
            minfo.addOutputParameter(pinfo);
        }
View Full Code Here

        throws WrapperFault
    {
        Element element;
        QName qname;
        ParameterInfo pinfo;
        Type type;
        Iterator paramlist;

        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();
        }
        minfo.setInputMessage(minfoqname);

        if (qname != null)
        {
            type = this.typeMap.getType(qname);
            boolean wrapped = wsdlWrappingStyle;

            if (type == null)
            {
                throw new WrapperFault(
                    "unregistered type " + qname + " referred");
            }

            if (wrapped)
            {
                //get inner attributes and elements and add them as parameters
                addInputElementsToMethodInfo(minfo, type);
                addInputAttributesToMethodInfo(minfo, type);
            }
            else
            { // for non-wrapped style wsdl's
                String elementName = (String) element.getQName().getLocalPart();
                pinfo = new ParameterInfo(type, elementName);
                pinfo.setElementName(type.getName());
                if (type.getName().equals(CUtils.anyTypeQname))
                {
                    pinfo.setAnyType(true);
                }
                minfo.addInputParameter(pinfo);
            }
View Full Code Here

        }

        for (int i = 0; i < attributeList.size(); i++)
        {
            String attributeName = (String) attributeList.get(i);
            Type innerType = type.getTypForAttribName(attributeName);
            pinfo = new ParameterInfo(innerType, attributeName);
            pinfo.setElementName(
                type.getTypForAttribName(attributeName).getName());
            pinfo.setAttribute(true);
            minfo.addInputParameter(pinfo);
View Full Code Here

        for (int i = 0; i < elementlist.size(); i++)
        {
            String elementname = (String) elementlist.get(i);
            eleinfo = type.getElementForElementName(elementname);
            Type innerType = eleinfo.getType();
            pinfo = new ParameterInfo(innerType, elementname);
            if (eleinfo.getMaxOccurs() > 1)
            {
                pinfo.setArray(true);
            }
            pinfo.setElementName(
                type.getElementForElementName(elementname).getName());
            if (innerType.getName().equals(CUtils.anyTypeQname))
                pinfo.setAnyType(true);
            minfo.addInputParameter(pinfo);
        }
    }
View Full Code Here

                {
                    return createTypeInfo(type.getRefType(), targetLanguage);
                }
                return null;
            }
        Type typedata = typeMap.getType(type.getQName());
        if (typedata != null)
        {
            //type is a inbild type or a already created type
            return typedata;
        }

        if (-1 != type.getQName().getLocalPart().indexOf('['))
        { /* it seems that this is an array */
            if (null == type.getRefType())
                throw new WrapperFault("Array type found without a Ref type");
            QName qn = type.getRefType().getQName();
            if (null == qn)
                throw new WrapperFault("Array type found without a Ref type");
            if (CUtils.isBasicType(qn))
                return null;
            QName newqn =
                new QName(
                    type.getQName().getNamespaceURI(),
                    qn.getLocalPart() + "_Array");
            typedata =
                new Type(newqn, newqn.getLocalPart(), true, targetLanguage);
            if (type.getRefType().getRefType() != null)
                typedata.setElementType(
                    type.getRefType().getRefType().getQName().getLocalPart());
            else
                typedata.setElementType(
                    type.getRefType().getQName().getLocalPart());
            typeMap.addType(newqn, typedata);
        }
        else
        {
            typedata =
                new Type(
                    type.getQName(),
                    type.getQName().getLocalPart(),
                    true,
                    targetLanguage);
            typeMap.addType(type.getQName(), typedata);
        }

        Node node = type.getNode();

        Vector restrictdata = null;
        if (type.isSimpleType())
        {
            //check for extended types
            TypeEntry base =
                CSchemaUtils.getComplexElementExtensionBase(
                    type.getNode(),
                    symbolTable);
            if (base != null)
            {
                String localpart = type.getQName().getLocalPart() + "_value";
                QName typeName =
                    new QName(type.getQName().getNamespaceURI(), localpart);
                ElementInfo eleinfo =
                    new ElementInfo(
                        typeName,
                        createTypeInfo(base.getQName(), targetLanguage));
                typedata.setExtensionBaseType(eleinfo);
                if (WSDL2Ws.verbose)
                    System.out.print(
                        "=====complexType with simpleContent is found : "
                            + type.getQName().getLocalPart()
                            + "=====\n");
            }
            else
            {
                //types declared as simpleType
                restrictdata =
                    CUtils.getRestrictionBaseAndValues(node, symbolTable);
                if (restrictdata != null)
                    typedata.setRestrictiondata(restrictdata);
            }
            // There can be attributes in this extended basic type
            // Process the attributes
            Vector attributes =
                CSchemaUtils.getContainedAttributeTypes(
                    type.getNode(),
                    symbolTable);
            if (attributes != null)
            {
                for (int j = 0; j < attributes.size(); j += 2)
                {
                    typedata.setTypeForAttributeName(
                        ((QName) attributes.get(j + 1)).getLocalPart(),
                        createTypeInfo(
                            ((TypeEntry) attributes.get(j)).getQName(),
                            targetLanguage));
                }
            }
        }
        else
            if (type instanceof CollectionType)
            {
                typedata.setTypeNameForElementName(
                    new ElementInfo(
                        type.getQName(),
                        createTypeInfo(
                            type.getRefType().getQName(),
                            targetLanguage)));
                typedata.setArray(true);
            }
            else
            {
                //is this a SOAPEnc array type 
                QName arrayType =
                    CSchemaUtils.getArrayComponentQName(
                        node,
                        new IntHolder(0),
                        symbolTable);
                if (arrayType != null)
                {
                    typedata.setTypeNameForElementName(
                        new ElementInfo(
                            new QName("item"),
                            createTypeInfo(arrayType, targetLanguage)));
                    typedata.setArray(true);
                }
                else
                    if ((arrayType =
                        CSchemaUtils.getCollectionComponentQName(node))
                        != null)
                    {
                        typedata.setTypeNameForElementName(
                            new ElementInfo(
                                new QName("item"),
                                createTypeInfo(arrayType, targetLanguage)));
                        typedata.setArray(true);
                    }
                //Note in a array the parameter type is stored as under the name item all the time 
                else
                {
                    // get all extended types
                    Vector extendList = new Vector();
                    extendList.add(type);
                    TypeEntry parent =
                        CSchemaUtils.getComplexElementExtensionBase(
                            type.getNode(),
                            symbolTable);
                    while (parent != null)
                    {
                        extendList.add(parent);
                        parent =
                            CSchemaUtils.getComplexElementExtensionBase(
                                parent.getNode(),
                                symbolTable);
                    }

                    // Now generate a list of names and types starting with
                    // the oldest parent.  (Attrs are considered before elements).
                    for (int i = extendList.size() - 1; i >= 0; i--)
                    {
                        TypeEntry te = (TypeEntry) extendList.elementAt(i);

                        //TODO the code require the attributes name at extension base types
                        //different, the WSDL2Ws do not support it having same name at up and below.

                        // The names of the inherited parms are mangled
                        // in case they interfere with local parms.
                        // String mangle = "";
                        //if (i > 0) {
                        //  mangle = "_" +
                        //    Utils.xmlNameToJava(te.getQName().getLocalPart()) +
                        //    "_";
                        //}

                        // Process the attributes
                        Vector attributes =
                            CSchemaUtils.getContainedAttributeTypes(
                                te.getNode(),
                                symbolTable);
                        if (attributes != null)
                        {
                            for (int j = 0; j < attributes.size(); j += 2)
                            {
                                typedata.setTypeForAttributeName(
                                    ((QName) attributes.get(j + 1))
                                        .getLocalPart(),
                                    createTypeInfo(
                                        ((TypeEntry) attributes.get(j))
                                            .getQName(),
                                        targetLanguage));
                            }
                        }
                        // Process the elements
                        Vector elements =
                            CSchemaUtils.getContainedElementDeclarations(
                                te.getNode(),
                                symbolTable);
                        if (elements != null)
                        {
                            for (int j = 0; j < elements.size(); j++)
                            {
                                ElementInfo eleinfo = null;
                                CElementDecl elem =
                                    (CElementDecl) elements.get(j);
                                if (elem.getAnyElement())
                                {

                                    Type anyType =
                                        new Type(
                                            CUtils.anyTypeQname,
                                            CUtils.anyTypeQname.getLocalPart(),
                                            true,
                                            targetLanguage);
                                    eleinfo =
View Full Code Here

        {
            Element element = symbolTable.getElement(part.getElementName());
            qname = element.getRefType().getQName();
        }

        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

Related Classes of org.apache.axis.wsdl.wsdl2ws.info.Type

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.