You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2008/08/20 23:55:27 UTC
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
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);