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 di...@apache.org on 2006/01/18 16:20:57 UTC
svn commit: r370169 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal:
ClientStubHeaderWriter.java ClientStubWriter.java
Author: dicka
Date: Wed Jan 18 07:20:53 2006
New Revision: 370169
URL: http://svn.apache.org/viewcvs?rev=370169&view=rev
Log:
AXISCPP-897
Resolve compilation problems in generated stubs caused by incorrect processing of user derived simple types.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java?rev=370169&r1=370168&r2=370169&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubHeaderWriter.java Wed Jan 18 07:20:53 2006
@@ -114,14 +114,24 @@
hasInputParms = true;
ParameterInfo nparam = (ParameterInfo) params.next();
String paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(nparam, wscontext);
+ Type type = nparam.getType();
+ String baseTypeName = null;
+ if (type.isSimpleType())
+ {
+ baseTypeName = CUtils.getclass4qname (type.getBaseType ());
+ }
+ else
+ {
+ baseTypeName = paramTypeName;
+ }
if (nparam.getType().isAttachment())
{
writer.write("ISoapAttachment *Value" + j);
}
else if ((paramTypeName.lastIndexOf ("_Array") > 0)
- || (CUtils.isSimpleType(paramTypeName)
+ || (CUtils.isSimpleType(baseTypeName)
&& (nparam.isNillable() || nparam.isOptional())
- && !(CUtils.isPointerType(paramTypeName))))
+ && !(CUtils.isPointerType(baseTypeName))))
{
writer.write(paramTypeName + " * Value" + j);
}
@@ -138,6 +148,16 @@
{
ParameterInfo nparam = (ParameterInfo) params.next();
String paramType = WrapperUtils.getClassNameFromParamInfoConsideringArrays( nparam, wscontext);
+ Type type = nparam.getType();
+ String baseTypeName = null;
+ if (type.isSimpleType())
+ {
+ baseTypeName = CUtils.getclass4qname (type.getBaseType ());;
+ }
+ else
+ {
+ baseTypeName = paramType;
+ }
boolean bTypeHasStar = paramType.endsWith( "*");
if (hasInputParms || 0!=j)
@@ -146,9 +166,9 @@
}
writer.write("AXIS_OUT_PARAM " + paramType);
- if (CUtils.isSimpleType(paramType))
+ if (CUtils.isSimpleType(baseTypeName))
{
- if ((nparam.isOptional() || nparam.isNillable()) && !CUtils.isPointerType(paramType))
+ if ((nparam.isOptional() || nparam.isNillable()) && !CUtils.isPointerType(baseTypeName))
{
if (bTypeHasStar)
{
@@ -159,7 +179,7 @@
writer.write(" **");
}
}
- else if (CUtils.isPointerType(paramType) || !bTypeHasStar)
+ else if (CUtils.isPointerType(baseTypeName) || !bTypeHasStar)
{
writer.write(" *");
}
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java?rev=370169&r1=370168&r2=370169&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/ClientStubWriter.java Wed Jan 18 07:20:53 2006
@@ -245,111 +245,131 @@
wscontext.getTypemap ().getType (((ParameterInfo) paramsB.
get (0)).getSchemaName ());
paramtype = (ParameterInfo) paramsB.get (0);
+ String baseTypeName = null;
if (type != null)
{
- if (type.isSimpleType ())
- { //schema defined simpleType
- paraTypeName =
- CUtils.getclass4qname (type.getBaseType ());
- }
- else
- {
- paraTypeName = type.getLanguageSpecificName ();
- if (CUtils.isSimpleType (paraTypeName))
- paraTypeName =
- WrapperUtils.
- getClassNameFromParamInfoConsideringArrays
- (paramtype, wscontext);
- typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
- if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName ();
- typeissimple = CUtils.isSimpleType (paraTypeName);
- }
- typeisarray |= type.isArray ();
+ if (type.isSimpleType ())
+ { //schema defined simpleType
+ baseTypeName =
+ CUtils.getclass4qname (type.getBaseType ());
+ paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ }
+ else
+ {
+ paraTypeName = type.getLanguageSpecificName ();
+ if (CUtils.isSimpleType (paraTypeName))
+ {
+ paraTypeName =
+ WrapperUtils.
+ getClassNameFromParamInfoConsideringArrays
+ (paramtype, wscontext);
+ }
+ typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
+ if (!typeisarray)
+ {
+ paraTypeName = type.getLanguageSpecificName ();
+ }
+ typeissimple = CUtils.isSimpleType (paraTypeName);
+ }
+ typeisarray |= type.isArray ();
}
else
{
- paraTypeName =
- ((ParameterInfo) paramsB.get (0)).getLangName ();
- paramtype = (ParameterInfo) paramsB.get (0);
- typeisarray = false;
- }
- typeissimple = CUtils.isSimpleType (paraTypeName);
- if (paramtype.getType().isAttachment())
- {
- writer.write("ISoapAttachment *Value0");
- }
- else if (typeissimple
- && (!(((ParameterInfo) paramsB.get (0)).isNillable () || ((ParameterInfo) paramsB.get (0)).isOptional())
- || CUtils.isPointerType(paraTypeName)))
+ paraTypeName =
+ ((ParameterInfo) paramsB.get (0)).getLangName ();
+ paramtype = (ParameterInfo) paramsB.get (0);
+ typeisarray = false;
+ }
+ if (baseTypeName == null)
+ {
+ baseTypeName = paraTypeName;
+ }
+ typeissimple = CUtils.isSimpleType (baseTypeName);
+ if (paramtype.getType().isAttachment())
+ {
+ writer.write("ISoapAttachment *Value0");
+ }
+ else if (typeissimple
+ && (!(((ParameterInfo) paramsB.get (0)).isNillable () || ((ParameterInfo) paramsB.get (0)).isOptional())
+ || CUtils.isPointerType(baseTypeName)))
{
- writer.write (paraTypeName + " Value0");
+ writer.write (paraTypeName + " Value0");
}
else if (paraTypeName.lastIndexOf ("*") > 0)
{
- writer.write (paraTypeName + " Value0");
+ writer.write (paraTypeName + " Value0");
}
else
{ //for AnyType too
- writer.write (paraTypeName + "* Value0");
+ writer.write (paraTypeName + "* Value0");
}
for (int i = 1; i < paramsB.size (); i++)
{
- type =
- wscontext.getTypemap ().getType (((ParameterInfo) paramsB.
- get (i)).
- getSchemaName ());
- paramtype = (ParameterInfo) paramsB.get (i);
- if (type != null)
- {
- if (type.isSimpleType ())
- { //schema defined simpleType
- paraTypeName =
- CUtils.getclass4qname (type.getBaseType ());
- }
- else
- {
- paraTypeName = type.getLanguageSpecificName ();
- if (CUtils.isSimpleType (paraTypeName))
+ baseTypeName = null;
+ type =
+ wscontext.getTypemap ().getType (((ParameterInfo) paramsB.
+ get (i)).
+ getSchemaName ());
+ paramtype = (ParameterInfo) paramsB.get (i);
+ if (type != null)
+ {
+ if (type.isSimpleType ())
+ { //schema defined simpleType
+ baseTypeName =
+ CUtils.getclass4qname (type.getBaseType ());
+ paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ }
+ else
+ {
+ paraTypeName = type.getLanguageSpecificName ();
+ if (CUtils.isSimpleType (paraTypeName))
+ {
+ paraTypeName =
+ WrapperUtils.
+ getClassNameFromParamInfoConsideringArrays
+ (paramtype, wscontext);
+ }
+ typeisarray =
+ (paraTypeName.lastIndexOf ("_Array") > 0);
+ if (!typeisarray)
+ {
+ paraTypeName = type.getLanguageSpecificName ();
+ }
+
+ }
+ typeisarray |= type.isArray ();
+ typeissimple = CUtils.isSimpleType (paraTypeName);
+ }
+ else
+ {
paraTypeName =
- WrapperUtils.
- getClassNameFromParamInfoConsideringArrays
- (paramtype, wscontext);
- typeisarray =
- (paraTypeName.lastIndexOf ("_Array") > 0);
- if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName ();
-
- }
- typeisarray |= type.isArray ();
- typeissimple = CUtils.isSimpleType (paraTypeName);
- }
- else
- {
- paraTypeName =
- ((ParameterInfo) paramsB.get (i)).getLangName ();
- paramtype = (ParameterInfo) paramsB.get (i);
- typeisarray = false;
- }
- typeissimple = CUtils.isSimpleType (paraTypeName);
- if (paramtype.getType().isAttachment())
- {
- writer.write(", ISoapAttachment *Value" + i);
- }
- else if (typeissimple
- && (!(((ParameterInfo) paramsB.get (i)).isNillable () || ((ParameterInfo) paramsB.get (i)).isOptional())
- || CUtils.isPointerType(paraTypeName)))
- {
- writer.write (", " + paraTypeName + " Value" + i);
- }
- else if (paraTypeName.lastIndexOf ("*") > 0)
- {
- writer.write (", " + paraTypeName + " Value" + i);
- }
- else
- { //for AnyType too
- writer.write (", " + paraTypeName + "* Value" + i);
- }
+ ((ParameterInfo) paramsB.get (i)).getLangName ();
+ paramtype = (ParameterInfo) paramsB.get (i);
+ typeisarray = false;
+ }
+ if (baseTypeName == null)
+ {
+ baseTypeName = paraTypeName;
+ }
+ typeissimple = CUtils.isSimpleType (baseTypeName);
+ if (paramtype.getType().isAttachment())
+ {
+ writer.write(", ISoapAttachment *Value" + i);
+ }
+ else if (typeissimple
+ && (!(((ParameterInfo) paramsB.get (i)).isNillable () || ((ParameterInfo) paramsB.get (i)).isOptional())
+ || CUtils.isPointerType(baseTypeName)))
+ {
+ writer.write (", " + paraTypeName + " Value" + i);
+ }
+ else if (paraTypeName.lastIndexOf ("*") > 0)
+ {
+ writer.write (", " + paraTypeName + " Value" + i);
+ }
+ else
+ { //for AnyType too
+ writer.write (", " + paraTypeName + "* Value" + i);
+ }
}
}
@@ -359,12 +379,22 @@
{
for (int i = 0; i < paramsC.size (); i++)
{
+ String baseTypeName = null;
type =
wscontext.getTypemap ().getType (((ParameterInfo) paramsC.
get (i)).
getSchemaName ());
+
ParameterInfo param = (ParameterInfo) paramsC.get (i);
String paramType = WrapperUtils.getClassNameFromParamInfoConsideringArrays (param, wscontext);
+ if (type.isSimpleType())
+ {
+ baseTypeName = CUtils.getclass4qname(type.getBaseType());
+ }
+ else
+ {
+ baseTypeName = paramType;
+ }
boolean bTypeHasStar = paramType.endsWith("*");
@@ -374,9 +404,9 @@
}
writer.write("AXIS_OUT_PARAM " + paramType);
- if (CUtils.isSimpleType(paramType))
+ if (CUtils.isSimpleType(baseTypeName))
{
- if ((param.isOptional() || param.isNillable()) && !CUtils.isPointerType(paramType))
+ if ((param.isOptional() || param.isNillable()) && !CUtils.isPointerType(baseTypeName))
{
if (bTypeHasStar)
{
@@ -387,7 +417,7 @@
writer.write(" **");
}
}
- else if (CUtils.isPointerType(paramType) || !bTypeHasStar)
+ else if (CUtils.isPointerType(baseTypeName) || !bTypeHasStar)
{
writer.write(" *");
}
@@ -776,234 +806,243 @@
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 = WrapperUtils.getClassNameFromParamInfoConsideringArrays(currentType, wscontext);
- typeisarray = (currentParaType.lastIndexOf("_Array") > 0);
- }
- 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 = null;
- if (WrapperUtils.getArrayType (type) != null)
- {
- qname = WrapperUtils.getArrayType (type).getName ();
- }
- else
- {
- qname = type.getName ();
- }
- String containedType = null;
-
- if (CUtils.isSimpleType (qname))
- {
- containedType = CUtils.getclass4qname (qname);
-
- writer.write("\n\t\t\tAxis_Array * pReturn" + i + " = m_pCall->getBasicArray(" + CUtils.getXSDTypeForBasicType (containedType)
- + ", \"" + currentType.getParamName ()
- + "\", 0);\n\n");
- writer.write("\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
- writer.write("\t\t\t{\n");
- writer.write("\t\t\t\tif( *OutValue" + i + " == NULL)\n");
- writer.write("\t\t\t\t{\n");
- writer.write("\t\t\t\t\t*OutValue" + i + " = new " + currentParaType
- + "();\n");
- writer.write("\t\t\t\t}\n");
- writer.write("\t\t\t\telse\n");
- writer.write("\t\t\t\t{\n");
- writer.write("\t\t\t\t\t(*OutValue" + i + ")->clear();\n");
- writer.write("\t\t\t\t}\n\n");
- writer.write("\t\t\t\t(*OutValue" + i + ")->clone(*pReturn" + i + ");\n");
- writer.write("\t\t\t}\n\n");
- writer.write("\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", XSD_ARRAY);\n");
- }
- else
- {
- containedType = qname.getLocalPart ();
- writer.write("\n\t\t\tif (OutValue" + i + " != NULL)\n" );
- writer.write("\t\t\t{\n");
- writer.write("\t\t\t\tif (" + currentParamName + " == NULL)\n");
- writer.write("\t\t\t\t{\n");
- writer.write("\t\t\t\t\t" + currentParamName + " = new " + containedType + "_Array();\n");
- writer.write("\t\t\t\t}\n");
- writer.write("\t\t\t\telse\n");
- writer.write("\t\t\t\t{\n");
- writer.write("\t\t\t\t\t(" + currentParamName + ")->clear();\n");
- writer.write("\t\t\t\t}\n");
- writer.
- write
- ("\t\t\t\tm_pCall->getCmplxArray(" + currentParamName + ", (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");
- writer.write("\t\t\t}\n");
- writer.write("\t\t\telse\n");
- writer.write("\t\t\t{\n");
- writer.write("\t\t\t\t// Unable to return value, but will deserialize to ensure subsequent elements can be correctly processed.\n");
- writer.write("\t\t\t\t" + containedType + "_Array * pTemp" + i + " = new " + containedType + "_Array();\n");
- writer.write("\t\t\t\tm_pCall->getCmplxArray(pTemp" + i + ", (void*) Axis_DeSerialize_"
- + containedType);
- writer.write (", (void*) Axis_Create_"
- + containedType
- + ", (void*) Axis_Delete_"
- + containedType
- + ", (void*) Axis_GetSize_"
- + containedType
- + ", \""
- +
- currentType.
- getElementNameAsString () +
- "\", Axis_URI_" + containedType +
- ");\n");
- writer.write("\t\t\t\tdelete pTemp" + i + ";\n");
- writer.write("\t\t\t}\n");
- }
- }
- else
- {
-
- if (typeissimple)
- {
- if( i > 0)
- {
- writer.write( "\n");
- }
-
- if (CUtils.isPointerType(currentParaType))
- {
- String xsdType = WrapperUtils.getClassNameFromParamInfoConsideringArrays ((ParameterInfo) paramsC.get (i), wscontext);
-
- if( !CUtils.isPointerType(xsdType))
- {
- xsdType += " *";
- }
-
- writer.write( "\t\t\t" + currentParaType + " pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( currentParaType, false) + "( \"" + currentType.getParamName() + "\", 0);\n");
- writer.write( "\n");
- writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
- writer.write( "\t\t\t\t{\n");
- writer.write( "\t\t\t\tif( *OutValue" + i + " != NULL)\n");
- writer.write( "\t\t\t\t{\n");
- writer.write( "\t\t\t\t\tint\tiStringSize" + i + " = strlen( (char *) *OutValue" + i + ");\n");
- writer.write( "\t\t\t\t\tint\tiStrLenValue" + i + " = strlen( pReturn" + i + ");\n");
- writer.write( "\n");
- writer.write( "\t\t\t\t\tif( iStrLenValue" + i + " > iStringSize" + i + ")\n");
- writer.write( "\t\t\t\t\t{\n");
- writer.write( "\t\t\t\t\t\t*OutValue" + i + " =(" + xsdType + ") new char[iStrLenValue" + i + " + 1];\n");
- writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
- writer.write( "\t\t\t\t\t}\n");
- writer.write( "\t\t\t\t\telse\n");
- writer.write( "\t\t\t\t\t{\n");
- writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
- writer.write( "\t\t\t\t\t}\n");
- writer.write( "\t\t\t\t}\n");
- writer.write( "\t\t\t\telse\n");
- writer.write( "\t\t\t\t{\n");
- writer.write( "\t\t\t\t\t*OutValue" + i + " = (" + xsdType + ") new char[strlen( pReturn" + i + ") + 1];\n");
- writer.write( "\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
- writer.write( "\t\t\t\t}\n");
- writer.write( "\t\t\t}\n");
- writer.write( "\n");
- writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( currentParaType) + ");\n");
- }
- else
- {
- writer.write( "\t\t\t" + currentParaType + " * pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( currentParaType, false) + "( \"" + currentType.getParamName() + "\", 0);\n");
- writer.write( "\n");
- writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
- writer.write( "\t\t\t{\n");
- if (currentType.isNillable() || currentType.isOptional())
- {
- writer.write( "\t\t\t\tif( *OutValue" + i + " == NULL)\n");
- writer.write( "\t\t\t\t{\n");
- writer.write( "\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
- writer.write( "\t\t\t\t}\n");
- writer.write( "\n");
- writer.write( "\t\t\t\t*");
- }
- else
- {
- writer.write( "\t\t\t\t");
- }
- writer.write( "*OutValue" + i + " = *pReturn" + i + ";\n");
- writer.write( "\t\t\t}\n");
- writer.write( "\n");
- writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( currentParaType) + ");\n");
- }
- }
- else
- {
-
- if (currentType.isAnyType ())
+ String baseTypeName = null;
+ ParameterInfo currentType = (ParameterInfo) paramsC.get (i);
+ type =
+ wscontext.getTypemap ().getType (currentType.
+ getSchemaName ());
+ if (type != null)
{
- //for anyTtype
- writer.write ("\t\t\t"
- + currentParamName
- + " = *("
- + currentParaType
- + "*)m_pCall->getAnyObject();\n");
+ if (type.isSimpleType ())
+ {
+ baseTypeName = CUtils.getclass4qname (type.getBaseType ());
+ currentParaType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(currentType, wscontext);
+ }
+ else
+ {
+ currentParaType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(currentType, wscontext);
+ typeisarray = (currentParaType.lastIndexOf("_Array") > 0);
+ }
+ typeisarray |= type.isArray ();
}
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
+ currentParaType =
+ ((ParameterInfo) paramsC.get (i)).getLangName ();
+ typeisarray = false;
+ }
+ if (baseTypeName == null)
+ {
+ baseTypeName = currentParaType;
+ }
+ typeissimple = CUtils.isSimpleType (baseTypeName);
+ currentParamName = "*OutValue" + i;
+
+ // Some code need to be merged as we have some duplicated in coding here.
+ if (typeisarray)
+ {
+ QName qname = null;
+ if (WrapperUtils.getArrayType (type) != null)
+ {
+ qname = WrapperUtils.getArrayType (type).getName ();
+ }
+ else
+ {
+ qname = type.getName ();
+ }
+ String containedType = null;
- int lastIndexOfStar = currentParaType.lastIndexOf("*");
- if (lastIndexOfStar > 0)
+ if (CUtils.isSimpleType (qname))
{
- currentParaType = currentParaType.substring(0, lastIndexOfStar);
+ containedType = CUtils.getclass4qname (qname);
+
+ writer.write("\n\t\t\tAxis_Array * pReturn" + i + " = m_pCall->getBasicArray(" + CUtils.getXSDTypeForBasicType (containedType)
+ + ", \"" + currentType.getParamName ()
+ + "\", 0);\n\n");
+ writer.write("\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
+ writer.write("\t\t\t{\n");
+ writer.write("\t\t\t\tif( *OutValue" + i + " == NULL)\n");
+ writer.write("\t\t\t\t{\n");
+ writer.write("\t\t\t\t\t*OutValue" + i + " = new " + currentParaType
+ + "();\n");
+ writer.write("\t\t\t\t}\n");
+ writer.write("\t\t\t\telse\n");
+ writer.write("\t\t\t\t{\n");
+ writer.write("\t\t\t\t\t(*OutValue" + i + ")->clear();\n");
+ writer.write("\t\t\t\t}\n\n");
+ writer.write("\t\t\t\t(*OutValue" + i + ")->clone(*pReturn" + i + ");\n");
+ writer.write("\t\t\t}\n\n");
+ writer.write("\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", XSD_ARRAY);\n");
+ }
+ else
+ {
+ containedType = qname.getLocalPart ();
+ writer.write("\n\t\t\tif (OutValue" + i + " != NULL)\n" );
+ writer.write("\t\t\t{\n");
+ writer.write("\t\t\t\tif (" + currentParamName + " == NULL)\n");
+ writer.write("\t\t\t\t{\n");
+ writer.write("\t\t\t\t\t" + currentParamName + " = new " + containedType + "_Array();\n");
+ writer.write("\t\t\t\t}\n");
+ writer.write("\t\t\t\telse\n");
+ writer.write("\t\t\t\t{\n");
+ writer.write("\t\t\t\t\t(" + currentParamName + ")->clear();\n");
+ writer.write("\t\t\t\t}\n");
+ writer.
+ write
+ ("\t\t\t\tm_pCall->getCmplxArray(" + currentParamName + ", (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");
+ writer.write("\t\t\t}\n");
+ writer.write("\t\t\telse\n");
+ writer.write("\t\t\t{\n");
+ writer.write("\t\t\t\t// Unable to return value, but will deserialize to ensure subsequent elements can be correctly processed.\n");
+ writer.write("\t\t\t\t" + containedType + "_Array * pTemp" + i + " = new " + containedType + "_Array();\n");
+ writer.write("\t\t\t\tm_pCall->getCmplxArray(pTemp" + i + ", (void*) Axis_DeSerialize_"
+ + containedType);
+ writer.write (", (void*) Axis_Create_"
+ + containedType
+ + ", (void*) Axis_Delete_"
+ + containedType
+ + ", (void*) Axis_GetSize_"
+ + containedType
+ + ", \""
+ +
+ currentType.
+ getElementNameAsString () +
+ "\", Axis_URI_" + containedType +
+ ");\n");
+ writer.write("\t\t\t\tdelete pTemp" + i + ";\n");
+ writer.write("\t\t\t}\n");
+ }
+ }
+ else
+ {
+
+ if (typeissimple)
+ {
+ if( i > 0)
+ {
+ writer.write( "\n");
+ }
+
+ if (CUtils.isPointerType(baseTypeName))
+ {
+ String xsdType = WrapperUtils.getClassNameFromParamInfoConsideringArrays ((ParameterInfo) paramsC.get (i), wscontext);
+
+ if( !CUtils.isPointerType(baseTypeName))
+ {
+ if (!baseTypeName.equals(currentParaType))
+ {
+ xsdType = currentParaType;
+ }
+ xsdType += " *";
+ }
+
+ writer.write( "\t\t\t" + currentParaType + " pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamName() + "\", 0);\n");
+ writer.write( "\n");
+ writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
+ writer.write( "\t\t\t\t{\n");
+ writer.write( "\t\t\t\tif( *OutValue" + i + " != NULL)\n");
+ writer.write( "\t\t\t\t{\n");
+ writer.write( "\t\t\t\t\tint\tiStringSize" + i + " = strlen( (char *) *OutValue" + i + ");\n");
+ writer.write( "\t\t\t\t\tint\tiStrLenValue" + i + " = strlen( pReturn" + i + ");\n");
+ writer.write( "\n");
+ writer.write( "\t\t\t\t\tif( iStrLenValue" + i + " > iStringSize" + i + ")\n");
+ writer.write( "\t\t\t\t\t{\n");
+ writer.write( "\t\t\t\t\t\t*OutValue" + i + " =(" + xsdType + ") new char[iStrLenValue" + i + " + 1];\n");
+ writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+ writer.write( "\t\t\t\t\t}\n");
+ writer.write( "\t\t\t\t\telse\n");
+ writer.write( "\t\t\t\t\t{\n");
+ writer.write( "\t\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+ writer.write( "\t\t\t\t\t}\n");
+ writer.write( "\t\t\t\t}\n");
+ writer.write( "\t\t\t\telse\n");
+ writer.write( "\t\t\t\t{\n");
+ writer.write( "\t\t\t\t\t*OutValue" + i + " = (" + xsdType + ") new char[strlen( pReturn" + i + ") + 1];\n");
+ writer.write( "\t\t\t\t\tstrcpy( (char *) *OutValue" + i + ", pReturn" + i + ");\n");
+ writer.write( "\t\t\t\t}\n");
+ writer.write( "\t\t\t}\n");
+ writer.write( "\n");
+ writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\n");
+ }
+ else
+ {
+ writer.write( "\t\t\t" + currentParaType + " * pReturn" + i + " = m_pCall->" + CUtils.getParameterGetValueMethodName( baseTypeName, false) + "( \"" + currentType.getParamName() + "\", 0);\n");
+ writer.write( "\n");
+ writer.write( "\t\t\tif( pReturn" + i + " != NULL && OutValue" + i + " != NULL)\n");
+ writer.write( "\t\t\t{\n");
+ if (currentType.isNillable() || currentType.isOptional())
+ {
+ writer.write( "\t\t\t\tif( *OutValue" + i + " == NULL)\n");
+ writer.write( "\t\t\t\t{\n");
+ writer.write( "\t\t\t\t\t*OutValue" + i + " = new " + currentParaType + "();\n");
+ writer.write( "\t\t\t\t}\n");
+ writer.write( "\n");
+ writer.write( "\t\t\t\t*");
+ }
+ else
+ {
+ writer.write( "\t\t\t\t");
+ }
+ writer.write( "*OutValue" + i + " = *pReturn" + i + ";\n");
+ writer.write( "\t\t\t}\n");
+ writer.write( "\n");
+ writer.write( "\t\t\tAxis::AxisDelete( (void *) pReturn" + i + ", " + CUtils.getXSDTypeForBasicType( baseTypeName) + ");\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
+
+ int lastIndexOfStar = currentParaType.lastIndexOf("*");
+ if (lastIndexOfStar > 0)
+ {
+ currentParaType = currentParaType.substring(0, lastIndexOfStar);
+ }
+ writer.write ("\n\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 ("\n\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");