You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2006/03/23 00:28:14 UTC
svn commit: r387970 [2/2] - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal:
BeanParamWriter.java WrapWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java?rev=387970&r1=387969&r2=387970&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java Wed Mar 22 15:28:11 2006
@@ -60,64 +60,45 @@
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
- {
- if (1 == noOfOutParams)
- {
- returntype =
- (ParameterInfo) minfo
- .getOutputParameterTypes()
- .iterator()
- .next();
- }
- else
- {
- isAllTreatedAsOutParams = true;
- }
- }
+ 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());
+ 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
{
- 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();
- }
+ outparamType = retType.getLanguageSpecificName();
+ returntypeissimple = CUtils.isSimpleType(outparamType);
+ returntypeisarray = retType.isArray();
}
}
else
@@ -126,12 +107,12 @@
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("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");
@@ -147,23 +128,17 @@
writer.write("\t\treturn AXIS_FAIL;\n");
writer.write("\t}\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()
- + "\"))\n");
+ writer.write("\tif (AXIS_SUCCESS != pIWSDZ->checkMessageBody(\""
+ + minfo.getInputMessage().getLocalPart() + "\", \""
+ + minfo.getInputMessage().getNamespaceURI() + "\"))\n");
writer.write("\t{\n");
writer.write("\t\treturn AXIS_FAIL;\n");
writer.write("\t}\n");
if (minfo.getOutputMessage() != null)
{
- writer.write(
- "\tpIWSSZ->createSoapMethod(\""
- + minfo.getOutputMessage().getLocalPart()
- + "\", \""
- + minfo.getOutputMessage().getNamespaceURI()
- + "\");\n");
+ writer.write("\tpIWSSZ->createSoapMethod(\""
+ + minfo.getOutputMessage().getLocalPart() + "\", \""
+ + minfo.getOutputMessage().getNamespaceURI() + "\");\n");
}
//create and populate variables for each parameter
String paraTypeName;
@@ -175,293 +150,169 @@
{
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
- {
- if (param.isArray())
- {
- paraTypeName =
- WrapperUtils
- .getClassNameFromParamInfoConsideringArrays(
- param,
- wscontext);
- }
- else
- {
- paraTypeName = param.getLangName();
- }
- }
+ paraTypeName = param.getLangName();
elementName = param.getElementNameAsString();
if (type != null && type.isSimpleType())
- { //schema defined simpleType possibly with restrictions
+ {
if (param.isNillable() &&
!(CUtils.isPointerType(type.getLanguageSpecificName())))
{
- writer.write(
- "\t"
- + paraTypeName
- + "* v"
- + i
- + " = pIWSDZ->"
- + CUtils.getParameterGetValueMethodName(
- paraTypeName,
- false)
- + "(\""
- + elementName
- + "\",0);\n");
+ writer.write("\t" + paraTypeName + "* v" + i
+ + " = pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+ + "(\"" + elementName + "\",0);\n");
}
else
{
-
- writer.write(
- "\t"
- + paraTypeName
- + " v"
- + i
- + " = *(pIWSDZ->"
- + CUtils.getParameterGetValueMethodName(
- paraTypeName,
- false)
- + "(\""
- + elementName
- + "\",0));\n");
+ writer.write("\t" + paraTypeName + " v" + i
+ + " = *(pIWSDZ->" + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+ + "(\"" + elementName + "\",0));\n");
}
}
- else
+ else if ((CUtils.isSimpleType(param.getLangName())))
{
- if ((CUtils.isSimpleType(param.getLangName())))
+ //for simple types
+ if (param.isArray())
{
- //for simple types
- if (param.isArray())
- { /*parameters that are declared as arrays in the wrapping element.*/
- String containedType =
- CUtils.getclass4qname(type.getName());
-
- writer.write("\n\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n");
- writer.write(
- "\t"
- + "Axis_Array * RetArray"
- + i
- + " = pIWSDZ->getBasicArray("
- + CUtils.getXSDTypeForBasicType(containedType)
- + ", \""
- + elementName
- + "\",0);\n");
- writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
- writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
- }
- else
- {
- if (CUtils.isPointerType(paraTypeName))
- {
+ String containedType = CUtils.getclass4qname(type.getName());
+
+ writer.write("\n\t" + containedType + "_Array * v" + i +" = new " + containedType + "_Array();\n");
+ writer.write("\t"
+ + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + elementName + "\",0);\n");
+ writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+ writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
+ }
+ else if (CUtils.isPointerType(paraTypeName))
+ {
+ writer.write("\n\t" + paraTypeName + " v" + i + " = NULL;\n");
+ if (param.isOptional())
+ {
+ writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
+ writer.write("\tif ( strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
+ writer.write("\t{\n");
+ }
+ writer.write("\t" + paraTypeName + " value" + i + " = pIWSDZ->"
+ + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+ + "(\"" + elementName + "\",0);\n");
+ writer.write("\tif ( value" + i + " )\n");
+ writer.write("\t{\n");
+ writer.write("\t\tv" + i + " = new char[ strlen( value" + i + ") + 1 ];\n");
+ writer.write("\t\tstrcpy( v" + i + ", value" + i + ");\n");
+ writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + " );\n");
+ writer.write("\t}\n");
+ if (param.isOptional())
+ writer.write("\t}\n");
+ }
+ else if (param.isNillable() || param.isOptional())
+ {
+ writer.write("\n\t" + paraTypeName + " * v" + i + " = NULL;\n");
+ if (param.isOptional())
+ {
+ writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
+ writer.write("\tif (strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
+ writer.write("\t{\n");
+ }
+ writer.write("\t" + paraTypeName + " * pValue" + i + " = pIWSDZ->"
+ + CUtils.getParameterGetValueMethodName(paraTypeName,false)
+ + "(\"" + elementName + "\",0);\n");
+ writer.write("\tif (pValue" + i +")\n");
+ writer.write("\t{\n");
+ writer.write("\t\tv" + i + " = new " + paraTypeName + "();\n");
+ writer.write("\t\t*v" + i + " = *pValue" + i + ";\n");
+ writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n");
+ writer.write("\t}\n");
+ if (param.isOptional())
+ writer.write("\t}\n");
+ }
+ else
+ {
+ writer.write("\n\t" + paraTypeName + " v" + i);
+ if (!"xsd__base64Binary".equals(paraTypeName)
+ && !"xsd__hexBinary".equals(paraTypeName))
+ writer.write(" = " + CUtils.getInitValue(paraTypeName));
- writer.write("\n\t"
- + paraTypeName
- + " v"
- + i
- + " = NULL;\n");
- if (param.isOptional())
- {
- writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
- writer.write("\tif ( strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
- writer.write("\t{\n");
- }
- writer.write("\t" + paraTypeName + " value" + i + " = pIWSDZ->"
- + CUtils.getParameterGetValueMethodName(
- paraTypeName,
- false)
- + "(\""
- + elementName
- + "\",0);\n");
- writer.write("\tif ( value" + i + " )\n");
- writer.write("\t{\n");
- writer.write("\t\tv" + i + " = new char[ strlen( value" + i + ") + 1 ];\n");
- writer.write("\t\tstrcpy( v" + i + ", value" + i + ");\n");
- writer.write("\t\tAxis::AxisDelete( (void *) value" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + " );\n");
- writer.write("\t}\n");
- if (param.isOptional())
- {
- writer.write("\t}\n");
- }
- }
- else
- {
- if (param.isNillable() || param.isOptional())
- {
- writer.write("\n\t" + paraTypeName + " * v" + i + " = NULL;\n");
- if (param.isOptional())
- {
- writer.write("\tconst char * elementName" + i + " = pIWSDZ->peekNextElementName();\n");
- writer.write("\tif (strcmp( elementName" + i + ", \"" + elementName + "\" ) == 0)\n");
- writer.write("\t{\n");
- }
- writer.write("\t" + paraTypeName + " * pValue" + i
- + " = pIWSDZ->"
- + CUtils.getParameterGetValueMethodName(
- paraTypeName,
- false)
- + "(\""
- + elementName
- + "\",0);\n");
- writer.write("\tif (pValue" + i +")\n");
- writer.write("\t{\n");
- writer.write("\t\tv" + i + " = new " + paraTypeName + "();\n");
- writer.write("\t\t*v" + i + " = *pValue" + i + ";\n");
- writer.write("\t\tAxis::AxisDelete( (void *) pValue" + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName) + ");\n");
- writer.write("\t}\n");
- if (param.isOptional())
- {
- writer.write("\t}\n");
- }
- }
- else
- {
- writer.write("\n\t" + paraTypeName + " v" + i);
- if (!"xsd__base64Binary".equals(paraTypeName) && !"xsd__hexBinary".equals(paraTypeName))
- {
- writer.write(" = "
- + CUtils.getInitValue(paraTypeName));
- }
- writer.write(";\n");
- writer.write("\t"
- + paraTypeName
- + " * pValue"
- + i
- + " = pIWSDZ->"
- + CUtils.getParameterGetValueMethodName(
- paraTypeName,
- false) + "(\""
- + elementName + "\", 0);\n");
- writer.write("\tif (pValue" + i + ")\n");
- writer.write("\t{\n");
- writer.write("\t\tv" + i + " = *pValue" + i
- + ";\n");
- writer.write("\t\tAxis::AxisDelete( (void *) pValue"
- + i
- + ", "
- + CUtils.getXSDTypeForBasicType(paraTypeName)
- + ");\n");
- writer.write("\t}\n");
- }
- }
- }
+ writer.write(";\n");
+ writer.write("\t"
+ + paraTypeName + " * pValue" + i + " = pIWSDZ->"
+ + CUtils.getParameterGetValueMethodName(paraTypeName,false) + "(\""
+ + elementName + "\", 0);\n");
+ writer.write("\tif (pValue" + i + ")\n");
+ writer.write("\t{\n");
+ writer.write("\t\tv" + i + " = *pValue" + i + ";\n");
+ writer.write("\t\tAxis::AxisDelete( (void *) pValue"
+ + i + ", " + CUtils.getXSDTypeForBasicType(paraTypeName)+ ");\n");
+ writer.write("\t}\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("\n\t" + outparamType + "_Array * v" + i +" = new " + outparamType + "_Array();\n");
+ writer.write("\t"
+ + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + elementName + "\",0);\n");
+ writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+ writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
+ }
+ else if (arrayType.isSimpleType())
+ {
+ containedType = CUtils.getclass4qname(arrayType.getBaseType());
+ writer.write("\n\t" + outparamType + " * v" + i +" = new " + outparamType + "();\n");
+ writer.write("\t"
+ + "Axis_Array * RetArray" + i + " = pIWSDZ->getBasicArray("
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + elementName + "\",0);\n");
+ writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
+ writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\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("\n\t" + outparamType + "_Array * v" + i +" = new " + outparamType + "_Array();\n");
- writer.write(
- "\t"
- + "Axis_Array * RetArray"
- + i
- + " = pIWSDZ->getBasicArray("
- + CUtils.getXSDTypeForBasicType(
- containedType)
- + ", \""
- + elementName
- + "\",0);\n");
- writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
- writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
- }
- else
- {
- if (arrayType.isSimpleType())
- { //SimpleType in the schema
- containedType =
- CUtils.getclass4qname(
- arrayType.getBaseType());
- writer.write("\n\t" + outparamType + " * v" + i +" = new " + outparamType + "();\n");
- writer.write(
- "\t"
- + "Axis_Array * RetArray"
- + i
- + " = pIWSDZ->getBasicArray("
- + CUtils.getXSDTypeForBasicType(
- containedType)
- + ", \""
- + elementName
- + "\",0);\n");
- writer.write ("\tv" + i + "->clone(*RetArray"+ i + ");\n");
- writer.write ("\tAxis::AxisDelete( (void *)RetArray" + i + ", XSD_ARRAY);\n\n");
- }
- else
- {
- containedType = qname.getLocalPart();
- writer.write("\n\t" + paraTypeName + " * v" + i +" = new " + paraTypeName + "();\n");
- writer.write(
- "\t"
- + "pIWSDZ->getCmplxArray(v" + i + ", (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");
- }
- }
+ containedType = qname.getLocalPart();
+ writer.write("\n\t" + paraTypeName + " * v" + i +" = new " + paraTypeName + "();\n");
+ writer.write("\t"
+ + "pIWSDZ->getCmplxArray(v" + i + ", (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())
+ {
+ 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");
+ }
+ } // for loop
+
writer.write("\n\tif (AXIS_SUCCESS != (nStatus = pIWSDZ->getStatus()))\n");
writer.write("\t{\n");
writer.write("\t\treturn nStatus;\n");
writer.write("\t}\n\n");
+
// Multiples parameters so fill the methods prototype
if (isAllTreatedAsOutParams)
{
@@ -473,38 +324,34 @@
(ParameterInfo) paramsC.get(i), wscontext);
writer.write("\t" + typeName);
- if ( (param.isOptional() || param.isNillable()) && CUtils.isSimpleType(typeName) && !CUtils.isPointerType(typeName) && !param.isArray())
- {
+ if ( (param.isOptional() || param.isNillable())
+ && CUtils.isSimpleType(typeName)
+ && !CUtils.isPointerType(typeName) && !param.isArray())
writer.write(" *");
- }
writer.write(" out" + i + ";\n");
}
}
+
writer.write("\ttry\n\t{\n"); //nithya
if (returntype != null)
- { /* Invoke the service when return type not void */
+ {
+ /* Invoke the service when return type not void */
returnParamName = returntype.getElementNameAsString();
writer.write("\t\t" + outparamType);
- if ((outparamType.lastIndexOf ("_Array") > 0)||(!returntypeisarray
- && (!returntypeissimple
- || (returntypeissimple //Chinthana:This has been changed because XSDElementNill Test failed.
- && returntype.isNillable()
- && !(CUtils.isPointerType(retType.getLanguageSpecificName()))))))
- {
+ if ((outparamType.lastIndexOf ("_Array") > 0)
+ ||(!returntypeisarray
+ && (!returntypeissimple
+ || (returntypeissimple
+ && returntype.isNillable()
+ && !(CUtils.isPointerType(retType.getLanguageSpecificName()))))))
writer.write(" *");
- }
- //06-06-2005...................................................................
- writer.write(" ret = "
- + "pWs->"
- + methodName
- + "(");
+ writer.write(" 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));
}
@@ -513,15 +360,11 @@
if (returntypeissimple)
{
if (returntype.isArray())
- { /*parameters that are declared as arrays in the wrapping element.*/
- String containedType =
- CUtils.getclass4qname(retType.getName());
- writer.write(
- "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
- + CUtils.getXSDTypeForBasicType(containedType)
- + ", \""
- + returnParamName
- + "\");\n");
+ {
+ String containedType = CUtils.getclass4qname(retType.getName());
+ writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+ + CUtils.getXSDTypeForBasicType(containedType) + ", \""
+ + returnParamName + "\");\n");
writer.write("\t\tdelete ret;\n");
writer.write("\t\treturn nStatus;\n");
}
@@ -531,326 +374,211 @@
if (returntype.isNillable()
|| CUtils.isPointerType(returnParamTypeName))
{
- writer.write(
- "\t\treturn pIWSSZ->addOutputParam(\""
- + returnParamName
- + "\", (void*)ret, "
- + CUtils.getXSDTypeForBasicType(outparamType)
- + ");\n");
+ writer.write("\t\treturn pIWSSZ->addOutputParam(\"" + returnParamName
+ + "\", (void*)ret, " + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
}
else
{
- writer.write(
- "\t\treturn pIWSSZ->addOutputParam(\""
- + returnParamName
- + "\", (void*)&ret, "
- + CUtils.getXSDTypeForBasicType(outparamType)
- + ");\n");
+ writer.write("\t\treturn pIWSSZ->addOutputParam(\"" + returnParamName
+ + "\", (void*)&ret, " + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
}
}
}
- else
+ else if (returntypeisarray)
{
- if (returntypeisarray)
+ Type arrayType = WrapperUtils.getArrayType(retType);
+ QName qname = arrayType.getName();
+ String containedType = null;
+ if (CUtils.isSimpleType(qname))
{
- Type arrayType = WrapperUtils.getArrayType(retType);
- QName qname = arrayType.getName();
- String containedType = null;
- if (CUtils.isSimpleType(qname))
- {
- containedType = CUtils.getclass4qname(qname);
- writer.write(
- "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
- + CUtils.getXSDTypeForBasicType(containedType)
- + ", \""
- + returnParamName
- + "\");\n");
- writer.write("\t\tdelete ret;\n");
- writer.write("\t\treturn nStatus;\n");
- }
- else
- {
- if (arrayType.isSimpleType())
- { //SimpleType in the schema
- containedType =
- CUtils.getclass4qname(arrayType.getBaseType());
- writer.write(
- "\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
- + CUtils.getXSDTypeForBasicType(containedType)
- + ", \""
- + returnParamName
- + "\");\n");
- writer.write("\t\tdelete ret;\n");
- writer.write("\t\treturn nStatus;\n");
- }
- else
- {
- containedType = qname.getLocalPart();
- writer.write(
- "\t\tnStatus = pIWSSZ->addOutputCmplxArrayParam(ret,"
- + "(void*) Axis_Serialize_"
- + containedType
- + ", (void*) Axis_Delete_"
- + containedType
- + ", (void*) Axis_GetSize_"
- + containedType
- + ", \""
- + returnParamName
- + "\", Axis_URI_"
- + containedType
- + ");\n");
- writer.write("\t\tdelete ret;\n");
- writer.write("\t\treturn nStatus;\n");
- }
- }
+ containedType = CUtils.getclass4qname(qname);
+ writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + returnParamName + "\");\n");
+ writer.write("\t\tdelete ret;\n");
+ writer.write("\t\treturn nStatus;\n");
+ }
+ else if (arrayType.isSimpleType())
+ {
+ containedType = CUtils.getclass4qname(arrayType.getBaseType());
+ writer.write("\t\tnStatus = pIWSSZ->addOutputBasicArrayParam(ret, "
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + returnParamName + "\");\n");
+ writer.write("\t\tdelete ret;\n");
+ writer.write("\t\treturn nStatus;\n");
}
else
{
- if (returntype.isAnyType())
- {
- writer.write(
- "\t\treturn pIWSSZ->addOutputAnyObject(ret);\n");
- }
- else
- {
- //complex type
- writer.write(
- "\t\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"
- + outparamType
- + ", (void*)Axis_Delete_"
- + outparamType
- + ", \""
- + returnParamName
- + "\", Axis_URI_"
- + outparamType
- + ");\n");
- }
+ containedType = qname.getLocalPart();
+ writer.write("\t\tnStatus = pIWSSZ->addOutputCmplxArrayParam(ret,"
+ + "(void*) Axis_Serialize_" + containedType
+ + ", (void*) Axis_Delete_" + containedType
+ + ", (void*) Axis_GetSize_" + containedType
+ + ", \"" + returnParamName
+ + "\", Axis_URI_" + containedType + ");\n");
+ writer.write("\t\tdelete ret;\n");
+ writer.write("\t\treturn nStatus;\n");
}
}
+ else if (returntype.isAnyType())
+ writer.write( "\t\treturn pIWSSZ->addOutputAnyObject(ret);\n");
+ else
+ {
+ //complex type
+ writer.write("\t\treturn pIWSSZ->addOutputCmplxParam(ret, (void*)Axis_Serialize_"
+ + outparamType
+ + ", (void*)Axis_Delete_" + outparamType
+ + ", \"" + returnParamName + "\", Axis_URI_" + outparamType + ");\n");
+ }
}
- else
+ else if (isAllTreatedAsOutParams)
{
- 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++)
{
- writer.write("\tpWs->" + methodName + "(");
- if (0 < paramsB.size())
+ ParameterInfo param = (ParameterInfo) paramsC.get(i);
+ retType = wscontext.getTypemap().getType(param.getSchemaName());
+ if (retType != null)
{
- for (int i = 0; i < paramsB.size(); i++)
+ if (retType.isSimpleType())
{
- writer.write("v" + i + ",");
+ returntypeissimple = true;
+ outparamType =
+ CUtils.getclass4qname(retType.getBaseType());
+ }
+ else
+ {
+ outparamType = retType.getLanguageSpecificName();
+ returntypeisarray = retType.isArray();
+ returntypeissimple =
+ CUtils.isSimpleType(outparamType);
}
}
- ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes();
- for (int i = 0; i < paramsC.size() - 1; i++)
+ else
{
- writer.write("&out" + i + ",");
+ outparamType = param.getLangName();
+ returntypeissimple = CUtils.isSimpleType(outparamType);
}
- writer.write("&out" + (paramsC.size() - 1));
- writer.write(");\n");
- paramsC = (ArrayList) minfo.getOutputParameterTypes();
- for (int i = 0; i < paramsC.size(); i++)
+
+ returnParamName = param.getElementName().getLocalPart();
+ if (returntypeissimple)
{
- ParameterInfo param = (ParameterInfo) paramsC.get(i);
- retType =
- wscontext.getTypemap().getType(param.getSchemaName());
- if (retType != null)
+ if (param.isArray())
{
- if (retType.isSimpleType())
- {
- returntypeissimple = true;
- outparamType =
- CUtils.getclass4qname(retType.getBaseType());
- }
- else
+ String containedType = CUtils.getclass4qname(retType.getName());
+ writer.write("\treturn pIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&ret),"
+ + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + returnParamName + "\");\n");
+ }
+ else if (CUtils.isPointerType(outparamType)
+ || param.isOptional()
+ || param.isNillable())
+ {
+ if (param.isOptional())
{
- outparamType = retType.getLanguageSpecificName();
- returntypeisarray = retType.isArray();
- returntypeissimple =
- CUtils.isSimpleType(outparamType);
+ writer.write("\tif (out" + i + ")\n");
+ writer.write("\t{\n");
+ writer.write("\t");
}
+
+ writer.write("\tpIWSSZ->addOutputParam(\""
+ + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+ + "\", (void*)out" + i + ", "
+ + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
+
+ if (param.isOptional())
+ writer.write("\t}\n");
}
else
{
- outparamType = param.getLangName();
- returntypeissimple = CUtils.isSimpleType(outparamType);
+ writer.write("\tpIWSSZ->addOutputParam(\""
+ + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+ + "\", (void*)&out" + i + ", "
+ + CUtils.getXSDTypeForBasicType(outparamType) + ");\n");
}
- returnParamName = param.getElementName().getLocalPart();
- if (returntypeissimple)
+ }
+ else if (returntypeisarray)
+ {
+ Type arrayType = WrapperUtils.getArrayType(retType);
+ QName qname = arrayType.getName();
+ String containedType = null;
+
+ if (CUtils.isSimpleType(qname))
{
- 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
- {
- /**
- * Dushshantha:
- * i commented out this code to correct wrong code generation for out params
- */
-
-
- if (CUtils.isPointerType(outparamType) || param.isOptional() || param.isNillable())
- {
- if (param.isOptional())
- {
- writer.write("\tif (out" + i + ")\n");
- writer.write("\t{\n");
- writer.write("\t");
- }
- writer.write(
- "\tpIWSSZ->addOutputParam(\""
- + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
- + "\", (void*)out"
- + i
- + ", "
- + CUtils.getXSDTypeForBasicType(outparamType)
- + ");\n");
- if (param.isOptional())
- {
- writer.write("\t}\n");
- }
- }
- else
- {
- writer.write(
- "\tpIWSSZ->addOutputParam(\""
- + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
- + "\", (void*)&out"
- + i
- + ", "
- + CUtils.getXSDTypeForBasicType(outparamType)
- + ");\n");
- }
- //10/05/2005..........................................................
- }
+ containedType = CUtils.getclass4qname(qname);
+ writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
+ + i + ")," + CUtils.getXSDTypeForBasicType( containedType)
+ + ", \"" + returnParamName + "\");\n");
+ writer.write("\tdelete out" + i + ";\n");
+ }
+ else if (arrayType.isSimpleType())
+ {
+ containedType = CUtils.getclass4qname(arrayType.getBaseType());
+ writer.write("\tpIWSSZ->addOutputBasicArrayParam((Axis_Array*)(&out"
+ + i + ")," + CUtils.getXSDTypeForBasicType(containedType)
+ + ", \"" + returnParamName + "\");\n");
+ writer.write("\tdelete out" + i + ";\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");
- writer.write("\tdelete out" + i + ";\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");
- writer.write("\tdelete out" + i + ";\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");
- writer.write("\tdelete out" + i + ";\n");
- }
- }
- }
- else
- {
- if (param.isAnyType())
- {
- //anyType
- writer.write(
- "\tpIWSSZ->addOutputAnyObject(out"
- + i
- + ");\n");
- }
- else
- {
- if (param.isOptional())
- {
- writer.write("\tif (out" + i + ")\n");
- writer.write("\t{\n");
- writer.write("\t");
- }
- //complex type
- writer.write(
- "\tpIWSSZ->addOutputCmplxParam(out"
- + i
- + ", (void*)Axis_Serialize_"
- + outparamType
- + ", (void*)Axis_Delete_"
- + outparamType
- + ", \""
- + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
- + "\", Axis_URI_"
- + outparamType
- + ");\n");
- if (param.isOptional())
- {
- writer.write("\t}\n");
- }
- }
- }
+ 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");
+ writer.write("\tdelete out" + i + ";\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())
+ else if (param.isAnyType())
+ writer.write("\tpIWSSZ->addOutputAnyObject(out" + i + ");\n");
+ else
{
- for (int i = 0; i < paramsB.size() - 1; i++)
+ if (param.isOptional())
{
- writer.write("v" + i + ",");
- }
- writer.write("v" + (paramsB.size() - 1));
+ writer.write("\tif (out" + i + ")\n");
+ writer.write("\t{\n");
+ writer.write("\t");
+ }
+ //complex type
+ writer.write("\tpIWSSZ->addOutputCmplxParam(out" + i
+ + ", (void*)Axis_Serialize_" + outparamType
+ + ", (void*)Axis_Delete_" + outparamType
+ + ", \"" + returnParamName.substring(returnParamName.lastIndexOf(">")+1)
+ + "\", Axis_URI_" + outparamType + ");\n");
+
+ if (param.isOptional())
+ writer.write("\t}\n");
}
- writer.write(");\n");
- writer.write("\treturn AXIS_SUCCESS;\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;
@@ -867,18 +595,15 @@
ParameterInfo par = (ParameterInfo) paramInfo.get(i);
paramName = par.getParamName();
langName = par.getLangName();
- faultType =
- WrapperUtils.getClassNameFromParamInfoConsideringArrays(
- par,
- wscontext);
+ faultType = WrapperUtils.getClassNameFromParamInfoConsideringArrays(par,wscontext);
writeExceptions(faultType, faultInfoName, paramName, langName);
}
}
writer.write("\tcatch(...)\n");
writer.write("\t{\n");
writer.write("\t\treturn AXIS_FAIL;\n");
- writer.write("\t}\n"); //nithya
- //write end of method
+ writer.write("\t}\n");
+
writer.write("}\n");
}
/* (non-Javadoc)
@@ -898,30 +623,17 @@
writer.write("\t{\n");
writer.write("\t\tif (pObjFault)\n");
writer.write("\t\t{\n");
- writer.write(
- "\t\t\tpIWSSZ->createSoapFault(\""
- + faultInfoName
- + "\", \""
- + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
+ writer.write("\t\t\tpIWSSZ->createSoapFault(\"" + faultInfoName
+ + "\", \"" + wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()
+ "\",\"AxisC++ Faultcode\", \"Custom Out of bound exception\");\n");
- // writer.write("\t\t"+faulttype+" pObjFault = new "+langName+"();\n");//damitha
- writer.write(
- "\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_"
- + langName
- + ",\n");
- writer.write(
- "\t\t\t\t(void*) Axis_Delete_"
- + langName
- + ",\""
- + faultInfoName
- + "\", Axis_URI_"
- + langName
- + ");\n");
+
+ writer.write("\t\t\tpIWSSZ->addFaultDetail(pObjFault, (void*) Axis_Serialize_" + langName + ",\n");
+ writer.write("\t\t\t\t(void*) Axis_Delete_" + langName
+ + ",\"" + faultInfoName + "\", Axis_URI_" + langName + ");\n");
writer.write("\t\t\tthrow AxisServiceException(AXISC_SERVICE_THROWN_EXCEPTION);\n");
writer.write("\t\t}\n");
writer.write("\t\treturn AXIS_FAIL;\n");
writer.write("\t}\n");
-// writer.write("\n");
}
catch (IOException e)
{
@@ -944,48 +656,30 @@
{
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())
{
typeName = itr.next().toString();
- writer.write(
- "extern int Axis_DeSerialize_"
- + typeName
- + "("
- + typeName
- + "* param, IWrapperSoapDeSerializer* pDZ);\n");
- writer.write(
- "extern void* Axis_Create_"
- + typeName
- + "("
- + typeName
- + " *Obj, bool bArray = false, int nSize=0);\n");
- writer.write(
- "extern void Axis_Delete_"
- + typeName
- + "("
- + typeName
- + "* param, bool bArray = false, int nSize=0);\n");
- writer.write(
- "extern int Axis_Serialize_"
- + typeName
- + "("
- + typeName
- + "* param, IWrapperSoapSerializer* pSZ, bool bArray = false);\n");
+ writer.write("extern int Axis_DeSerialize_" + typeName + "("
+ + typeName + "* param, IWrapperSoapDeSerializer* pDZ);\n");
+ writer.write("extern void* Axis_Create_" + typeName + "("
+ + typeName + " *Obj, bool bArray = false, int nSize=0);\n");
+ writer.write("extern void Axis_Delete_" + typeName + "("
+ + typeName + "* param, bool bArray = false, int nSize=0);\n");
+ writer.write("extern int Axis_Serialize_" + typeName + "("
+ + typeName + "* param, IWrapperSoapSerializer* pSZ, bool bArray = false);\n");
writer.write("extern int Axis_GetSize_" + typeName + "();\n\n");
}
}