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 2008/05/21 08:26:01 UTC
svn commit: r658564 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp:
WrapWriter.java literal/WrapWriter.java
Author: nadiramra
Date: Tue May 20 23:26:01 2008
New Revision: 658564
URL: http://svn.apache.org/viewvc?rev=658564&view=rev
Log:
AXISCPP-1048 - pointer type not being generation for optional return value.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java?rev=658564&r1=658563&r2=658564&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/WrapWriter.java Tue May 20 23:26:01 2008
@@ -122,28 +122,17 @@
{
try
{
- writer.write(
- "/*implementation of WrapperClassHandler interface*/\n");
+ CUtils.printMethodComment(writer, "This method handles faults.");
+
writer.write(
"void "
+ classname
+ "::\nonFault(void *pMsg)\n{"
+ "\n\tpWs->onFault();\n}\n\n");
- /*writer.write(
- "int "
- + classname
- + "::\ninit()\n{\n"
- + "\tpWs->init();\n\treturn AXIS_SUCCESS;\n}\n\n");
- writer.write(
- "int "
- + classname
- + "::\nfini()\n{\n"
- + "\tpWs->fini();\n\treturn AXIS_SUCCESS;\n}\n\n");
- */
+
writeInvoke();
- writer.write(
- "\n/*Methods corresponding to the web service methods*/\n");
+
MethodInfo minfo;
for (int i = 0; i < methods.size(); i++)
{
@@ -184,37 +173,34 @@
*/
private void writeInvoke() throws IOException
{
- writer.write("\n/*\n");
- writer.write(" * This method invokes the right service method \n");
- writer.write(" */\n");
+ CUtils.printMethodComment(writer, "This method invokes the right service method.");
+
writer.write("int " + classname + "::\ninvoke(void *pMsg)\n{\n");
writer.write("\tIMessageData* mc = (IMessageData*)pMsg;\n");
- //msgdata.setSoapFault(new SOAPFault(new AxisFault()))
writer.write("\tconst AxisChar *method = mc->getOperationName();\n");
+
//if no methods in the service simply return
- if (methods.size() == 0)
- {
- writer.write("}\n");
- return;
- }
- MethodInfo minfo = (MethodInfo) methods.get(0);
- //if conditions (if parts)
- writer.write(
- "\tif( (0 == strcmp(method, \"" + minfo.getInputMessage().getLocalPart() + "\")) || (0 == strcmp(method, \"" + minfo.getMethodname() + "\")) )\n");
- writer.write("\t\treturn " + minfo.getMethodname() + "(mc);\n");
- //(else if parts)
- if (methods.size() > 1)
+ if (methods.size() != 0)
{
- for (int i = 1; i < methods.size(); i++)
+ MethodInfo minfo = (MethodInfo) methods.get(0);
+ //if conditions (if parts)
+ writer.write(
+ "\tif( (0 == strcmp(method, \"" + minfo.getInputMessage().getLocalPart() + "\")) || (0 == strcmp(method, \"" + minfo.getMethodname() + "\")) )\n");
+ writer.write("\t\treturn " + minfo.getMethodname() + "(mc);\n");
+ //(else if parts)
+ if (methods.size() > 1)
{
- minfo = (MethodInfo) methods.get(i);
- writer.write(
- "\telse if ( (0 == strcmp(method, \"" + minfo.getInputMessage().getLocalPart() + "\")) || (0 == strcmp(method, \"" + minfo.getMethodname() + "\")) )\n");
- writer.write("\t\treturn " + minfo.getMethodname() + "(mc);\n");
+ for (int i = 1; i < methods.size(); i++)
+ {
+ minfo = (MethodInfo) methods.get(i);
+ writer.write(
+ "\telse if ( (0 == strcmp(method, \"" + minfo.getInputMessage().getLocalPart() + "\")) || (0 == strcmp(method, \"" + minfo.getMethodname() + "\")) )\n");
+ writer.write("\t\treturn " + minfo.getMethodname() + "(mc);\n");
+ }
}
+ //(else part)
+ writer.write("\telse return AXIS_FAIL;\n");
}
- //(else part)
- writer.write("\telse return AXIS_FAIL;\n");
//end of method
writer.write("}\n\n");
}
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/WrapWriter.java?rev=658564&r1=658563&r2=658564&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 Tue May 20 23:26:01 2008
@@ -107,32 +107,29 @@
}
}
- writer.write("\n/*\n");
- writer.write(" * This method wrap the service method \n");
- writer.write(" */\n");
+ CUtils.printMethodComment(writer, "This method wraps the service method " + methodName + ".");
+
//method signature
writer.write("int " + classname + "::" + methodName + "(void* pMsg)\n{\n");
writer.write("\tIMessageData* mc = (IMessageData*)pMsg;\n");
- writer.write("\tint nStatus;\n");
+ writer.write("\tint nStatus;\n\n");
+
writer.write("\tIWrapperSoapSerializer* pIWSSZ = NULL;\n");
writer.write("\tmc->getSoapSerializer(&pIWSSZ);\n");
writer.write("\tif (!pIWSSZ)\n");
- writer.write("\t{\n");
- writer.write("\t\treturn AXIS_FAIL;\n");
- writer.write("\t}\n");
+ writer.write("\t\treturn AXIS_FAIL;\n\n");
+
writer.write("\tIWrapperSoapDeSerializer* pIWSDZ = NULL;\n");
writer.write("\tmc->getSoapDeSerializer(&pIWSDZ);\n");
writer.write("\tif (!pIWSDZ)\n");
- writer.write("\t{\n");
- writer.write("\t\treturn AXIS_FAIL;\n");
- writer.write("\t}\n");
- writer.write("\t/* check whether we have got correct message */\n");
+ writer.write("\t\treturn AXIS_FAIL;\n\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("\t{\n");
- writer.write("\t\treturn AXIS_FAIL;\n");
- writer.write("\t}\n");
+ writer.write("\t\treturn AXIS_FAIL;\n\n");
+
if (minfo.getOutputMessage() != null)
{
writer.write("\tpIWSSZ->createSoapMethod(\""
@@ -307,9 +304,7 @@
} // 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");
+ writer.write("\t\treturn nStatus;\n\n");
// Multiples parameters so fill the methods prototype
if (isAllTreatedAsOutParams)
@@ -340,7 +335,7 @@
||(!returntypeisarray
&& (!returntypeissimple
|| (returntypeissimple
- && returntype.isNillable()
+ && (returntype.isNillable() || returntype.isOptional())
&& !(CUtils.isPointerType(retType.getLanguageSpecificName()))))))
writer.write(" *");
@@ -370,6 +365,7 @@
{
String returnParamTypeName = retType.getLanguageSpecificName();
if (returntype.isNillable()
+ || returntype.isOptional()
|| CUtils.isPointerType(returnParamTypeName))
{
writer.write("\t\treturn pIWSSZ->addOutputParam(\"" + returnParamName