Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 34500 invoked from network); 20 Aug 2008 21:56:19 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 20 Aug 2008 21:56:19 -0000 Received: (qmail 69143 invoked by uid 500); 20 Aug 2008 21:56:17 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 69020 invoked by uid 500); 20 Aug 2008 21:56:17 -0000 Mailing-List: contact axis-cvs-help@ws.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: List-Id: Delivered-To: mailing list axis-cvs@ws.apache.org Received: (qmail 69011 invoked by uid 99); 20 Aug 2008 21:56:17 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Aug 2008 14:56:17 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 20 Aug 2008 21:55:28 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id AA5AB238899E; Wed, 20 Aug 2008 14:55:27 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r687483 - in /webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws: CUtils.java c/ParmHeaderFileWriter.java cpp/ClientStubHeaderWriter.java cpp/ClientStubWriter.java cpp/ParmHeaderFileWriter.java info/WSDLInfo.java Date: Wed, 20 Aug 2008 21:55:27 -0000 To: axis-cvs@ws.apache.org From: nadiramra@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080820215527.AA5AB238899E@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: nadiramra Date: Wed Aug 20 14:55:26 2008 New Revision: 687483 URL: http://svn.apache.org/viewvc?rev=687483&view=rev Log: AXISCPP-1051 - Bad code generated for several Cisco Call Manager WSDL Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/CUtils.java Wed Aug 20 14:55:26 2008 @@ -69,7 +69,7 @@ }; // Maps simple types to a QName. - private static Hashtable c_basicTypeToQNameMapper = new Hashtable(); + public static Hashtable c_basicTypeToQNameMapper = new Hashtable(); // Returns the initialization value string for a basic type. public static Hashtable c_initValueForBasicType = new Hashtable(); @@ -781,6 +781,19 @@ } /** + * Returns boolean indicating whether name is a primitive type + * such as xsd__xxxx or xsdc__xxxxx. + * + * @param qname + * @return + */ + public static boolean isPrimitiveBasicType(String name) + { + return (c_basicTypeToQNameMapper.containsKey(name) + && (name.startsWith("xsd__") || name.startsWith("xsdc__"))); + } + + /** * Method to determine if name passed in is that of a simple type. * * @param name Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ParmHeaderFileWriter.java Wed Aug 20 14:55:26 2008 @@ -428,7 +428,7 @@ String basicType = attribs[i].getTypeName(); Type theType = attribs[i].getType(); - if (theType.isRestriction() && !CUtils.isSimpleType(basicType)) + if (theType.isRestriction() && !CUtils.isPrimitiveBasicType(basicType)) typeSet.add(basicType); else if (!attribs[i].isSimpleType()) { @@ -450,7 +450,7 @@ if (extBaseType.lastIndexOf("*") > -1) extBaseType = extBaseType.substring(0, extBaseType.lastIndexOf("*")); - if (!CUtils.isSimpleType(extBaseType)) + if (!CUtils.isPrimitiveBasicType(extBaseType)) typeSet.add(extBaseType); } Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java Wed Aug 20 14:55:26 2008 @@ -140,30 +140,21 @@ //write parameter names Iterator params = minfo.getInputParameterTypes().iterator(); - if (params.hasNext()) - { - ParameterInfo fparam = (ParameterInfo) params.next(); - String paramTypeName = CUtils.getClassNameFromParamInfoConsideringArrays(fparam,wscontext); - if ((paramTypeName.lastIndexOf ("_Array") > 0) - ||(CUtils.isSimpleType(paramTypeName) - && fparam.isNillable() - && !(CUtils.isPointerType(paramTypeName)))) - writer.write(paramTypeName + " * Value" + 0); - else - writer.write(paramTypeName + " Value" + 0); - } - - for (int j = 1; params.hasNext(); j++) + String commaSeperator = ""; + for (int j = 0; params.hasNext(); j++) { ParameterInfo nparam = (ParameterInfo) params.next(); String paramTypeName = CUtils.getClassNameFromParamInfoConsideringArrays(nparam, wscontext); if ((paramTypeName.lastIndexOf ("_Array") > 0) || (CUtils.isSimpleType(paramTypeName) - && nparam.isNillable() + && (nparam.isNillable() || nparam.isOptional()) && !(CUtils.isPointerType(paramTypeName)))) - writer.write(", " + paramTypeName + " * Value" + j); + writer.write(commaSeperator + paramTypeName + " * Value" + j); else - writer.write(", " + paramTypeName + " Value" + j); + writer.write(commaSeperator + paramTypeName + " Value" + j); + + if (j==0) + commaSeperator = ", "; } if (isAllTreatedAsOutParams) Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java Wed Aug 20 14:55:26 2008 @@ -212,14 +212,25 @@ if (returntype != null) { - outparamType = CUtils.getClassNameFromParamInfoConsideringArrays(returntype, wscontext); retType = wscontext.getTypemap().getType(returntype.getSchemaName()); if (retType != null) { - returntypeisarray = retType.isArray(); - if (CUtils.isSimpleType(retType.getLanguageSpecificName())) - returntypeissimple = true; + outparamType = CUtils.getClassNameFromParamInfoConsideringArrays(returntype, wscontext); + if (retType.isSimpleType()) + returntypeissimple = true; + else + { + returntypeissimple = CUtils.isSimpleType (outparamType); + returntypeisarray = (outparamType.lastIndexOf ("_Array") > 0); + } + + returntypeisarray |= retType.isArray(); } + else + { + outparamType = returntype.getLangName (); + returntypeissimple = CUtils.isSimpleType (outparamType); + } } //============================================================================= @@ -257,8 +268,8 @@ typeissimple = CUtils.isSimpleType(paramTypeName); if (typeissimple - && (!(((ParameterInfo) paramsB.get (0)).isNillable () - || ((ParameterInfo) paramsB.get (0)).isOptional()) + && (!(((ParameterInfo) paramsB.get (i)).isNillable () + || ((ParameterInfo) paramsB.get (i)).isOptional()) || CUtils.isPointerType(paramTypeName))) writer.write (paramTypeName + " Value" + i); else if (paramTypeName.lastIndexOf ("*") > 0) Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ParmHeaderFileWriter.java Wed Aug 20 14:55:26 2008 @@ -553,7 +553,7 @@ String basicType = attribs[i].getTypeName(); Type theType = attribs[i].getType(); - if (theType.isRestriction() && !CUtils.isSimpleType(basicType)) + if (theType.isRestriction() && !CUtils.isPrimitiveBasicType(basicType)) typeSet.add(basicType); else if (!attribs[i].isSimpleType()) { @@ -575,7 +575,7 @@ if (extBaseType.lastIndexOf("*") > -1) extBaseType = extBaseType.substring(0, extBaseType.lastIndexOf("*")); - if (!CUtils.isSimpleType(extBaseType)) + if (!CUtils.isPrimitiveBasicType(extBaseType)) typeSet.add(extBaseType); } Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java?rev=687483&r1=687482&r2=687483&view=diff ============================================================================== --- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java (original) +++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/info/WSDLInfo.java Wed Aug 20 14:55:26 2008 @@ -884,6 +884,7 @@ methodSuffix = (String)CUtils.c_basicTypeToMethodSuffixMapper.get(classForPrimitiveType); CUtils.c_qnameToBasicTypeMapper.put(typedataQName, class4qname); + CUtils.c_basicTypeToQNameMapper.put(class4qname, typedataQName); CUtils.c_basicTypeToEnumMapper.put(typedataLocalpart, primitiveXSDType); if (initValueForType != null) @@ -903,6 +904,7 @@ if (isPointerType) CUtils.c_pointerBasedTypes.add(typedataLocalpartSanitized); CUtils.c_qnameToBasicTypeMapper.put(typedataQNameSanitized, class4qnameSanitized); + CUtils.c_basicTypeToQNameMapper.put(class4qnameSanitized, typedataQNameSanitized); CUtils.c_basicTypeToEnumMapper.put(typedataLocalpartSanitized, primitiveXSDType); if (initValueForType != null) CUtils.c_initValueForBasicType.put(typedataLocalpartSanitized, initValueForType);