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/05/17 23:21:07 UTC
svn commit: r407372 -
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java
Author: nadiramra
Date: Wed May 17 14:21:05 2006
New Revision: 407372
URL: http://svn.apache.org/viewvc?rev=407372&view=rev
Log:
C support fixes/enhancements.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java?rev=407372&r1=407371&r2=407372&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubHeaderWriter.java Wed May 17 14:21:05 2006
@@ -50,13 +50,7 @@
this.wscontext = wscontext;
this.methods = wscontext.getSerInfo().getMethods();
}
-
- /* (non-Javadoc)
- * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeAttributes()
- */
- protected void writeAttributes() throws WrapperFault
- {}
-
+
/* (non-Javadoc)
* @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeClassComment()
*/
@@ -75,6 +69,14 @@
throw new WrapperFault(e);
}
}
+
+ /* (non-Javadoc)
+ * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeAttributes()
+ */
+ protected void writeAttributes() throws WrapperFault
+ {}
+
+
/* (non-Javadoc)
* @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeMethods()
@@ -85,64 +87,123 @@
try
{
writer.write("\n");
- writer.write("/* Functions relating to web service client proxy */\n");
+ writer.write("/* ********************************************************************* */\n");
+ writer.write("/* --- Functions relating to web service client proxy --- */\n");
+ writer.write("/* ********************************************************************* */\n");
+ writer.write("\n");
+
writer.write("extern AXISCHANDLE get_" + classname + "_stub(const char* pchEndPointUri);\n");
writer.write("extern void destroy_" + classname + "_stub(AXISCHANDLE pStub);\n");
writer.write("extern int get_" + classname + "_Status(AXISCHANDLE pStub);\n");
writer.write("\n");
- writer.write("/* Functions relating to web service methods */\n");
+ writer.write("/* ********************************************************************* */\n");
+ writer.write("/* --- Functions relating to web service methods --- */\n");
+ writer.write("/* ********************************************************************* */\n");
+ writer.write("\n");
for (int i = 0; i < methods.size(); i++)
{
minfo = (MethodInfo) this.methods.get(i);
boolean isAllTreatedAsOutParams = false;
- ParameterInfo returntype = null;
int noOfOutParams = minfo.getOutputParameterTypes().size();
+
+ //write return type
if (0 == noOfOutParams)
- {
- returntype = null;
writer.write("extern void ");
- }
else if (1 == noOfOutParams)
{
- returntype = (ParameterInfo) minfo.getOutputParameterTypes().iterator().next();
- writer.write("extern "
- + WrapperUtils.getClassNameFromParamInfoConsideringArrays(returntype,wscontext)
- + " ");
+ ParameterInfo returnParam =
+ (ParameterInfo) minfo.getOutputParameterTypes().iterator().next();
+ String outParamTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(returnParam, wscontext);
+ if ((outParamTypeName.lastIndexOf ("_Array") > 0)
+ || (CUtils.isSimpleType(outParamTypeName)
+ && (returnParam.isNillable() || returnParam.isOptional())
+ && !(CUtils.isPointerType(outParamTypeName))))
+ writer.write("extern " + outParamTypeName + " * ");
+ else
+ writer.write("extern " + outParamTypeName + " ");
}
else
{
isAllTreatedAsOutParams = true;
writer.write("extern void ");
}
- writer.write(minfo.getMethodname() + "(AXISCHANDLE pStub");
+
+ //write return type
+ writer.write(minfo.getMethodname() + "(AXISCHANDLE pStub");
//write parameter names
Iterator params = minfo.getInputParameterTypes().iterator();
if (params.hasNext())
{
+ writer.write(", ");
+
ParameterInfo fparam = (ParameterInfo) params.next();
- writer.write(", "
- + WrapperUtils.getClassNameFromParamInfoConsideringArrays(fparam,wscontext)
- + " Value" + 0);
+ String paramTypeName = WrapperUtils
+ .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++)
{
+ writer.write(", ");
+
ParameterInfo nparam = (ParameterInfo) params.next();
- writer.write(", "
- + WrapperUtils.getClassNameFromParamInfoConsideringArrays(nparam,wscontext)
- + " Value" + j);
+ String paramTypeName = WrapperUtils
+ .getClassNameFromParamInfoConsideringArrays(
+ nparam,
+ wscontext);
+ if (CUtils.isSimpleType(paramTypeName)
+ && nparam.isNillable()
+ && !(CUtils.isPointerType(paramTypeName)))
+ {
+ writer.write(", "
+ + paramTypeName
+ + " * Value"
+ + j);
+ }
+ else
+ {
+ writer.write(", "
+ + paramTypeName
+ + " Value"
+ + j);
+ }
}
+
if (isAllTreatedAsOutParams)
{
params = minfo.getOutputParameterTypes().iterator();
for (int j = 0; params.hasNext(); j++)
{
ParameterInfo nparam = (ParameterInfo) params.next();
- writer.write(", AXISC_OUT_PARAM "
- + WrapperUtils.getClassNameFromParamInfoConsideringArrays(nparam,wscontext)
- + " *OutValue" + j);
+ writer.write(
+ ", AXISC_OUT_PARAM "
+ + WrapperUtils
+ .getClassNameFromParamInfoConsideringArrays(
+ nparam,
+ wscontext)
+ + " *OutValue"
+ + j);
}
}
writer.write(");\n");
@@ -171,6 +232,9 @@
while (types.hasNext())
{
atype = (Type) types.next();
+ if (atype.getLanguageSpecificName().startsWith(">"))
+ continue;
+
typeName = WrapperUtils.getLanguageTypeName4Type(atype);
if (null != typeName)
typeSet.add(typeName);