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 2007/01/31 07:17:48 UTC
svn commit: r501744 - in
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c:
BeanParamWriter.java ClientStubWriter.java literal/ClientStubWriter.java
Author: nadiramra
Date: Tue Jan 30 22:17:47 2007
New Revision: 501744
URL: http://svn.apache.org/viewvc?view=rev&rev=501744
Log:
Remove redundant code between literal and encoded and sync up so that the code
is easier to compare.
Modified:
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java
webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/BeanParamWriter.java Tue Jan 30 22:17:47 2007
@@ -34,6 +34,7 @@
/**
* Genarate a webservice for the complex types likes structs.
+ *
* @author hemapani
*/
@@ -64,11 +65,34 @@
throw new WrapperFault(e);
}
}
+
+ private void writeSerializeExtensionCode() throws IOException, WrapperFault
+ {
+ // TODO: xsd:extension not fully or correctly supported.
+ if (extensionBaseAttrib != null)
+ {
+ String typeName = extensionBaseAttrib.getTypeName();
- /**
- * @throws IOException
- * @throws WrapperFault
- */
+ if (extensionBaseAttrib.isSimpleType())
+ {
+ writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ,(void*)");
+ if (!CUtils.isPointerType(typeName))
+ writer.write("&");
+ writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember() + "), "
+ + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
+ }
+ else
+ {
+ // TODO
+ }
+ }
+ else if (attribs.length == 0)
+ {
+ System.out.println("Possible error in class " + classname
+ + ": class with no attributes or elements...........");
+ }
+ }
+
private void writeSerializeGlobalMethod() throws IOException, WrapperFault
{
writer.write("\n");
@@ -76,49 +100,30 @@
writer.write(" * This static method serializes a " + classname + " type of object\n");
writer.write(" */\n");
writer.write("int Axis_Serialize_" + classname
- + "(" + classname + "* param, AXISCHANDLE pSZ, AxiscBool bArray)\n{\n");
+ + "(" + classname + "* param, AXISCHANDLE pSZ, AxiscBool bArray)\n");
+ writer.write( "{\n");
+ //=============================================================================
+ // No attributes or elements to serialize? Then serialize extension and return.
+ //=============================================================================
+
if (attribs.length == 0)
{
writer.write("\taxiscSoapSerializerSerialize(pSZ,\">\", NULL);\n");
- if (extensionBaseAttrib != null)
- {
- String typeName = extensionBaseAttrib.getTypeName();
-
- if (extensionBaseAttrib.isSimpleType())
- {
- writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ,(void*)");
-
- if (!CUtils.isPointerType(typeName))
- writer.write("&");
-
- writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember()
- + "), " + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
- }
- else
- {
- // TODO
- }
- }
- else
- {
- System.out.println("Possible error in class " + classname
- + ": class with no attributes....................");
- }
+ writeSerializeExtensionCode();
writer.write("\treturn AXISC_SUCCESS;\n");
writer.write("}\n\n");
return;
}
-
- String arrayType;
+ //=============================================================================
+ // NULL param passed in? Assume nillable although type does not know whether
+ // it is used as a nillable parameter so this may not be the appropriate place
+ // to put this, or we need to find a way to determine if nillable.
+ //=============================================================================
- /*
- * A type does not know whether it is used as a nillable parameter So
- * this may not be the appropriate place to do this
- */
writer.write("\tAxiscBool blnIsNewPrefix = xsdc_boolean_false;\n\n");
writer.write("\tif ( param == NULL )\n\t{\n");
@@ -126,14 +131,22 @@
writer.write("\t\taxiscSoapSerializerSerialize(pSZ, \">\", NULL);\n");
writer.write("\t\treturn AXISC_SUCCESS;\n");
writer.write("\t}\n\n");
- /*
- * This is the only real difference for the serializer between rpc/encoded and doc/literal objects
- */
+
+ //=============================================================================
+ // Serialize
+ // This is the only real difference for the serializer between rpc/encoded and
+ // doc/literal objects
+ //=============================================================================
+
if (wscontext.getWrapInfo().getWrapperStyle().equals("rpc"))
writeRPCArrayPortionOfSerializeGlobalMethod();
else
writeDOCArrayPortionOfSerializeGlobalMethod();
+ //=============================================================================
+ // Serialize attributes, if any
+ //=============================================================================
+
writer.write("\t/* If there are any attributes serialize them. If there aren't then close the tag */\n");
for (int i = 0; i < attributeParamCount; i++)
{
@@ -186,7 +199,11 @@
}
}
}
-
+
+ //=============================================================================
+ // Serialization relating to faults
+ //=============================================================================
+
if (type.isFault())
{
writer.write("\tif(Axis_URI_" + classname + ")\n\t{\n");
@@ -201,29 +218,21 @@
if(wscontext.getWrapInfo().getWrapperStyle().equals("document"))
writer.write("\taxiscSoapSerializerSerialize(pSZ, \">\", 0);\n");
- if (extensionBaseAttrib != null)
- {
- String typeName = extensionBaseAttrib.getTypeName();
-
- if (extensionBaseAttrib.isSimpleType())
- {
- writer.write("\taxiscSoapSerializerSerializeAsChardata(pSZ, (void*)");
- if (!CUtils.isPointerType(typeName))
- writer.write("&");
-
- writer.write("(param->" + extensionBaseAttrib.getParamNameAsMember() + "), "
- + CUtils.getXSDTypeForBasicType(typeName) + ");\n");
- }
- else
- {
- // TODO
- }
- }
-
+ //=============================================================================
+ // Serialize extension, if any
+ //=============================================================================
+
+ writeSerializeExtensionCode();
+
+ //=============================================================================
+ // Serialize elements, if any
+ //=============================================================================
+
writer.write("\n\t/* then serialize elements if any*/\n");
boolean firstIfWritten = false;
int anyCounter = 0; //counter for any types.
+ String arrayType;
for (int i = attributeParamCount; i < attribs.length; i++)
{
@@ -233,11 +242,9 @@
sanitizedAttrName += "_Ref";
attribs[i].setParamName(sanitizedAttrName);
- String namespace = "";
+ String namespace = "NULL";
if (attribs[i].getNsQualified())
namespace = "Axis_URI_" + classname;
- else
- namespace = "NULL";
// if the attribute is a choice following should do
if (attribs[i].getChoiceElement())
@@ -399,7 +406,11 @@
if (attribs[i].getMinOccurs() == 0)
writer.write("\t}\n");
}
-
+
+ //=============================================================================
+ // End of attribute and element serialization
+ //=============================================================================
+
if (wscontext.getWrapInfo().getWrapperStyle().equals("rpc"))
{
writer.write("\n\taxiscSoapSerializerSerialize(pSZ, \"</\", Axis_TypeName_" + classname
@@ -471,6 +482,42 @@
writer.write("\t}\n\n");
}
+ private void writeDeSerializeExtensionCode() throws IOException, WrapperFault
+ {
+ if (extensionBaseAttrib != null
+ && extensionBaseAttrib.getTypeName() != null)
+ {
+ if (extensionBaseAttrib.isSimpleType())
+ {
+ writer.write("\t{\n"); // ==== begin scope
+ writer.write("\tvoid* pCharDataAs;\n\n");
+ String typeName = extensionBaseAttrib.getTypeName();
+ String xsdType = CUtils.getXSDTypeForBasicType(typeName);
+ writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
+ writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
+
+ if (CUtils.isPointerType(typeName))
+ writer.write("(" + typeName + ") pCharDataAs;\n");
+ else
+ {
+ writer.write(" *(" + typeName + "*) pCharDataAs;\n");
+ writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
+ }
+ writer.write("\t}\n"); // ==== end scope
+ }
+ else
+ {
+ // TODO
+ }
+ }
+ else if (attribs.length == 0)
+ {
+ System.out.println("Possible error in class " + classname
+ + ": class with no attributes or elements............");
+
+ }
+ }
+
private void writeDeSerializeGlobalMethod() throws IOException, WrapperFault
{
writer.write("\n");
@@ -479,43 +526,24 @@
writer.write(" */\n");
writer.write("int Axis_DeSerialize_" + classname
+ "(" + classname + "* param, AXISCHANDLE pDZ)\n{\n");
-
+
+ //=============================================================================
+ // No attributes or elements to deserialize? Then deserialize extension and return.
+ //=============================================================================
+
if (attribs.length == 0)
{
- if (extensionBaseAttrib != null)
- {
- if (extensionBaseAttrib.isSimpleType())
- {
- writer.write("\tvoid* pCharDataAs;\n\n");
- String typeName = extensionBaseAttrib.getTypeName();
- String xsdType = CUtils.getXSDTypeForBasicType(typeName);
- writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
- writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
-
- if (CUtils.isPointerType(typeName))
- writer.write("(" + typeName + ") pCharDataAs;\n");
- else
- {
- writer.write(" *(" + typeName + "*) pCharDataAs;\n");
- writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
- }
- }
- else
- {
- // TODO
- }
- }
- else
- {
- System.out.println("Possible error in class " + classname
- + ": class with no attributes....................");
- }
+ writeDeSerializeExtensionCode();
writer.write("\treturn AXISC_SUCCESS;\n");
writer.write("}\n\n");
return;
}
+ //=============================================================================
+ // Deserialize attributes and elements.
+ //=============================================================================
+
String arrayType = null;
boolean peekCalled = false;
boolean firstIfWritten = false;
@@ -740,33 +768,12 @@
writer.write("\n");
}
+
+ //=============================================================================
+ // Deserialize extension, if any, and return status
+ //=============================================================================
- if (extensionBaseAttrib != null
- && extensionBaseAttrib.getTypeName() != null)
- {
- if (extensionBaseAttrib.isSimpleType())
- {
- writer.write("\t{\n"); // ==== begin scope
- writer.write("\tvoid* pCharDataAs;\n");
- String typeName = extensionBaseAttrib.getTypeName();
- String xsdType = CUtils.getXSDTypeForBasicType(typeName);
- writer.write("\taxiscSoapDeSerializerGetChardataAs(pDZ, &pCharDataAs, " + xsdType + ");\n");
- writer.write("\tparam->" + extensionBaseAttrib.getParamNameAsMember() + " = ");
-
- if (CUtils.isPointerType(typeName))
- writer.write("(" + typeName + ") pCharDataAs;\n");
- else
- {
- writer.write(" *(" + typeName + "*) pCharDataAs;\n");
- writer.write("\taxiscAxisDelete(pCharDataAs, " + xsdType + ");\n");
- }
- writer.write("\t}\n"); // ==== end scope
- }
- else
- {
- // TODO
- }
- }
+ writeDeSerializeExtensionCode();
writer.write("\t/* Return deserialization status */\n");
writer.write("\treturn axiscSoapDeSerializerGetStatus(pDZ);\n");
@@ -970,9 +977,6 @@
}
}
- /* (non-Javadoc)
- * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#getFilePath(boolean)
- */
protected File getFilePath(boolean useServiceName) throws WrapperFault
{
return null;
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/ClientStubWriter.java Tue Jan 30 22:17:47 2007
@@ -33,6 +33,7 @@
import org.apache.axis.wsdl.wsdl2ws.CUtils;
import org.apache.axis.wsdl.wsdl2ws.WrapperFault;
import org.apache.axis.wsdl.wsdl2ws.WrapperUtils;
+import org.apache.axis.wsdl.wsdl2ws.info.FaultInfo;
import org.apache.axis.wsdl.wsdl2ws.info.MethodInfo;
import org.apache.axis.wsdl.wsdl2ws.info.ParameterInfo;
import org.apache.axis.wsdl.wsdl2ws.info.Type;
@@ -70,20 +71,20 @@
throw new WrapperFault(e);
}
}
-
- /* (non-Javadoc)
+ /*
* @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeMethods()
+ * Used by literal code too!
*/
protected void writeMethods() throws WrapperFault
{
try
- {
+ {
writer.write("\n");
writer.write("/* ================================================== */\n" +
"/* Functions relating to web service client proxy */\n" +
"/* ================================================== */\n");
writer.write("\n");
-
+
// get_xxx_stub() routine
writer.write("AXISCHANDLE get_" + classname + "_stub(const char* pchEndPointUri)\n{\n");
writer.write("\tif(pchEndPointUri)\n");
@@ -102,27 +103,31 @@
writer.write("int get_" + classname + "_Status(AXISCHANDLE stub)\n{\n");
writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
writer.write("\treturn axiscCallGetStatus(call);\n");
- writer.write("}\n");
+ writer.write("}\n\n");
+ writer.write("void set_" + classname
+ + "_ExceptionHandler(AXISCHANDLE stub, AXIS_EXCEPTION_HANDLER_FUNCT fp)\n{\n");
+ writer.write("\taxiscStubSetCExceptionHandler(stub, (void *)fp);\n");
+ writer.write("}\n");
+
writer.write("\n");
writer.write("/* ================================================== */\n" +
"/* Functions corresponding to the web service methods */\n" +
"/* ================================================== */\n");
writer.write("\n");
-
+
MethodInfo minfo;
for (int i = 0; i < methods.size(); i++)
{
- minfo = (MethodInfo) methods.get(i);
- this.writeMethodInWrapper(minfo);
- writer.write("\n");
+ minfo = (MethodInfo) methods.get(i);
+ this.writeMethodInWrapper(minfo);
+ writer.write("\n");
}
-
- }
+ }
catch (IOException e)
- {
+ {
throw new WrapperFault(e);
- }
+ }
}
/* (non-Javadoc)
@@ -665,8 +670,61 @@
writer.write("}\n");
}
+
+ /*
+ * Used by literal code too!
+ */
+ protected void writeFaultHandlingCode(MethodInfo minfo) throws WrapperFault, IOException
+ {
+ writer.write ("\taxiscCallSetSoapFaultNamespace(call, \""
+ + wscontext.getWrapInfo ().getTargetEndpointURI () + "\");\n");
+
+ //to get fault info
+ Iterator paramsFault = minfo.getFaultType ().iterator ();
+ String faultInfoName = null;
+ String langName = null;
+
+ while (paramsFault.hasNext ())
+ {
+ FaultInfo info = (FaultInfo) paramsFault.next ();
+ faultInfoName = info.getFaultInfo ();
+
+ // FJP - D0004 > Looking through the list of attributes for the 'error' part of
+ // the fault message. If found, update the faultInfoName with the
+ // 'localname' of the qname of the attribute.
+ Iterator infoArrayListIterator = info.getParams ().iterator ();
+ boolean found = false;
+
+ while (infoArrayListIterator.hasNext () && !found)
+ {
+ ParameterInfo paramInfo = (ParameterInfo) infoArrayListIterator.next ();
+
+ if (paramInfo != null)
+ if ("error".equals (paramInfo.getParamName ()))
+ {
+ faultInfoName = paramInfo.getElementName ().getLocalPart ();
+ found = true;
+ }
+ }
+
+ ArrayList paramInfo = info.getParams ();
+ for (int i = 0; i < paramInfo.size (); i++)
+ {
+ ParameterInfo par = (ParameterInfo) paramInfo.get (i);
+ langName = par.getLangName ();
+
+ writer.write ("\taxiscCallAddSoapFaultToList(call, \""
+ + faultInfoName + "\", "
+ + "(void*) Axis_Create_" + langName + ", "
+ + "(void*) Axis_Delete_" + langName + ", "
+ + "(void*) Axis_DeSerialize_" + langName + ");\n");
+ }
+ }
+ }
+
/* (non-Javadoc)
* @see org.apache.axis.wsdl.wsdl2ws.cpp.CPPClassWriter#writeGlobalCodes()
+ * Used by literal code too!
*/
protected void writeGlobalCodes() throws WrapperFault
{
Modified: webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java?view=diff&rev=501744&r1=501743&r2=501744
==============================================================================
--- webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java (original)
+++ webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/c/literal/ClientStubWriter.java Tue Jan 30 22:17:47 2007
@@ -43,80 +43,17 @@
public class ClientStubWriter
extends org.apache.axis.wsdl.wsdl2ws.c.ClientStubWriter
{
- /**
- * @param wscontext
- * @throws WrapperFault
- */
public ClientStubWriter(WebServiceContext wscontext) throws WrapperFault
{
super(wscontext);
}
- /* (non-Javadoc)
- * @see org.apache.axis.wsdl.wsdl2ws.BasicFileWriter#writeMethods()
- */
- protected void writeMethods() throws WrapperFault
- {
- try
- {
- writer.write("\n");
- writer.write("/* ================================================== */\n" +
- "/* Functions relating to web service client proxy */\n" +
- "/* ================================================== */\n");
- writer.write("\n");
-
- // get_xxx_stub() routine
- writer.write("AXISCHANDLE get_" + classname + "_stub(const char* pchEndPointUri)\n{\n");
- writer.write("\tif(pchEndPointUri)\n");
- writer.write("\t\treturn axiscStubCreate(pchEndPointUri, AXISC_APTHTTP1_1);\n");
- writer.write("\telse\n");
- writer.write("\t\treturn axiscStubCreate(\""
- + wscontext.getWrapInfo().getTargetEndpointURI()
- + "\", AXISC_APTHTTP1_1);\n");
- writer.write("}\n\n");
-
- // destroy_xxxx_stub()
- writer.write("void destroy_" + classname + "_stub(AXISCHANDLE p)\n{\n");
- writer.write("\taxiscStubDestroy(p);\n}\n\n");
-
- // get_xxxx_Status() routine
- writer.write("int get_" + classname + "_Status(AXISCHANDLE stub)\n{\n");
- writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
- writer.write("\treturn axiscCallGetStatus(call);\n");
- writer.write("}\n\n");
-
- writer.write("void set_" + classname
- + "_ExceptionHandler(AXISCHANDLE stub, AXIS_EXCEPTION_HANDLER_FUNCT fp)\n{\n");
- writer.write("\taxiscStubSetCExceptionHandler(stub, (void *)fp);\n");
- writer.write("}\n");
-
- writer.write("\n");
- writer.write("/* ================================================== */\n" +
- "/* Functions corresponding to the web service methods */\n" +
- "/* ================================================== */\n");
- writer.write("\n");
-
- MethodInfo minfo;
- for (int i = 0; i < methods.size(); i++)
- {
- minfo = (MethodInfo) methods.get(i);
- this.writeMethodInWrapper(minfo);
- writer.write("\n");
- }
- }
- catch (IOException e)
- {
- throw new WrapperFault(e);
- }
- }
-
/**
* This method genarate methods that wraps the each method of the service
* @param MethodInfo
* @throws IOException
* @throws WrapperFault
*
- * @see org.apache.axis.wsdl.wsdl2ws.c.ClientStubWriter#writeMethodInWrapper(org.apache.axis.wsdl.wsdl2ws.info.MethodInfo)
*/
public void writeMethodInWrapper(MethodInfo minfo) throws WrapperFault, IOException
@@ -160,14 +97,16 @@
if (returntype != null)
returntypeissimple = CUtils.isSimpleType(outparamType);
+ //=============================================================================
+ // Generate method prototype
+ //=============================================================================
+
writer.write("\n/*\n");
writer.write(" * This function wraps the service method " + methodName + "\n");
writer.write(" */\n");
- // ===================================================================
- // generate function parameters
- // ===================================================================
- String paraTypeName;
+ //method signature
+ String paramTypeName;
boolean typeisarray = false;
boolean typeissimple = false;
Type type;
@@ -180,7 +119,7 @@
writer.write(outparamType);
else if (outparamType.lastIndexOf("*") > 0)
writer.write(outparamType);
- else // for AnyType too
+ else
writer.write(outparamType + "*");
writer.write(" " + methodName + "(AXISCHANDLE stub");
@@ -198,31 +137,31 @@
if (type.isSimpleType ())
{
baseTypeName = CUtils.getclass4qname (type.getBaseType ());
- paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
}
else
{
- paraTypeName = type.getLanguageSpecificName ();
- if (CUtils.isSimpleType (paraTypeName))
- paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ paramTypeName = type.getLanguageSpecificName ();
+ if (CUtils.isSimpleType (paramTypeName))
+ paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
- typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
+ typeisarray = (paramTypeName.lastIndexOf ("_Array") > 0);
if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName ();
+ paramTypeName = type.getLanguageSpecificName ();
- typeissimple = CUtils.isSimpleType (paraTypeName);
+ typeissimple = CUtils.isSimpleType (paramTypeName);
}
typeisarray |= type.isArray ();
}
else
{
- paraTypeName = ((ParameterInfo) paramsB.get (0)).getLangName ();
+ paramTypeName = ((ParameterInfo) paramsB.get (0)).getLangName ();
paramtype = (ParameterInfo) paramsB.get (0);
typeisarray = false;
}
if (baseTypeName == null)
- baseTypeName = paraTypeName;
+ baseTypeName = paramTypeName;
typeissimple = CUtils.isSimpleType (baseTypeName);
if (paramtype.getType().isAttachment())
@@ -231,12 +170,12 @@
&& (!(((ParameterInfo) paramsB.get (0)).isNillable () || ((ParameterInfo) paramsB.get (0)).isOptional())
|| CUtils.isPointerType(baseTypeName)))
{
- writer.write (paraTypeName + " Value0");
+ writer.write (paramTypeName + " Value0");
}
- else if (paraTypeName.lastIndexOf ("*") > 0)
- writer.write (paraTypeName + " Value0");
+ else if (paramTypeName.lastIndexOf ("*") > 0)
+ writer.write (paramTypeName + " Value0");
else //for AnyType too
- writer.write (paraTypeName + "* Value0");
+ writer.write (paramTypeName + "* Value0");
for (int i = 1; i < paramsB.size (); i++)
{
@@ -248,31 +187,31 @@
if (type.isSimpleType ())
{ //schema defined simpleType
baseTypeName = CUtils.getclass4qname (type.getBaseType ());
- paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
}
else
{
- paraTypeName = type.getLanguageSpecificName ();
- if (CUtils.isSimpleType (paraTypeName))
- paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
+ paramTypeName = type.getLanguageSpecificName ();
+ if (CUtils.isSimpleType (paramTypeName))
+ paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(paramtype, wscontext);
- typeisarray = (paraTypeName.lastIndexOf ("_Array") > 0);
+ typeisarray = (paramTypeName.lastIndexOf ("_Array") > 0);
if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName ();
+ paramTypeName = type.getLanguageSpecificName ();
}
typeisarray |= type.isArray ();
- typeissimple = CUtils.isSimpleType (paraTypeName);
+ typeissimple = CUtils.isSimpleType (paramTypeName);
}
else
{
- paraTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
+ paramTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
paramtype = (ParameterInfo) paramsB.get (i);
typeisarray = false;
}
if (baseTypeName == null)
- baseTypeName = paraTypeName;
+ baseTypeName = paramTypeName;
typeissimple = CUtils.isSimpleType (baseTypeName);
if (paramtype.getType().isAttachment())
@@ -281,11 +220,11 @@
&& (!(((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);
+ writer.write (", " + paramTypeName + " Value" + i);
+ else if (paramTypeName.lastIndexOf ("*") > 0)
+ writer.write (", " + paramTypeName + " Value" + i);
else //for AnyType too
- writer.write (", " + paraTypeName + "* Value" + i);
+ writer.write (", " + paramTypeName + "* Value" + i);
} // end for loop
} // end if (0 < paramsB.size ())
@@ -331,9 +270,9 @@
writer.write(")\n{\n");
- // ===================================================================
- // start of function body
- // ===================================================================
+ //=============================================================================
+ // Generate global variables
+ //=============================================================================
writer.write("\tAXISCHANDLE call = axiscStubGetCall(stub);\n");
@@ -379,16 +318,23 @@
else
writer.write(outparamType + " Ret;\n");
}
- // TODO initialize return parameter appropriately.
}
writer.write("\n");
-
+
+ //=============================================================================
+ // Generate fault handling code
+ //=============================================================================
+
writeFaultHandlingCode(minfo);
writer.write("\n");
-
- writer.write("\tif (AXISC_SUCCESS != axiscCallInitialize(call, C_DOC_PROVIDER " + ")) return ");
+ //=============================================================================
+ // Generate method logic
+ //=============================================================================
+
+ writer.write("\tif (AXISC_SUCCESS != axiscCallInitialize(call, C_DOC_PROVIDER " + "))\n");
+ writer.write("\t\treturn ");
if (returntype != null)
writer.write((returntypeisarray ? "RetArray" : returntypeissimple ? "Ret" : "pReturn") + ";\n");
else
@@ -444,6 +390,7 @@
writer.write ("\taxiscStubApplyUserPreferences(stub);\n");
writer.write("\n");
+ // Process elements
for (int i = 0; i < paramsB.size(); i++)
{
ParameterInfo param = (ParameterInfo) paramsB.get(i);
@@ -452,28 +399,28 @@
if (param.isAttribute ())
continue;
- // Add elements
+ // add elements
type = wscontext.getTypemap().getType(param.getSchemaName());
if (type != null)
{
if (type.isSimpleType())
- paraTypeName = CUtils.getclass4qname(type.getBaseType());
+ paramTypeName = CUtils.getclass4qname(type.getBaseType());
else
{
- paraTypeName = type.getLanguageSpecificName();
- if (CUtils.isSimpleType(paraTypeName))
- paraTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(param,wscontext);
+ paramTypeName = type.getLanguageSpecificName();
+ if (CUtils.isSimpleType(paramTypeName))
+ paramTypeName = WrapperUtils.getClassNameFromParamInfoConsideringArrays(param,wscontext);
- typeisarray = (paraTypeName.lastIndexOf("_Array") > 0);
+ typeisarray = (paramTypeName.lastIndexOf("_Array") > 0);
if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName();
+ paramTypeName = type.getLanguageSpecificName();
}
typeisarray |= type.isArray();
}
else
{
- paraTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
+ paramTypeName = ((ParameterInfo) paramsB.get (i)).getLangName ();
typeisarray = false;
}
@@ -563,21 +510,21 @@
writer.write ("Axis_URI_" + containedType);
}
}
- else if (CUtils.isSimpleType (paraTypeName))
+ else if (CUtils.isSimpleType (paramTypeName))
{
if (param.isNillable ()
|| param.isOptional()
- || CUtils.isPointerType(paraTypeName))
+ || CUtils.isPointerType(paramTypeName))
{
writer.write ("\taxiscCallAddParameter(call,");
writer.write ("(void*)Value" + i + ", cPrefixAndParamName" + i
- + ", " + CUtils.getXSDTypeForBasicType(paraTypeName));
+ + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
}
else
{
writer.write ("\taxiscCallAddParameter(call,");
writer.write ("(void*)&Value" + i + ", cPrefixAndParamName" + i
- + ", " + CUtils.getXSDTypeForBasicType(paraTypeName));
+ + ", " + CUtils.getXSDTypeForBasicType(paramTypeName));
}
}
else
@@ -585,9 +532,9 @@
// Complex Type
writer.write ("\taxiscCallAddCmplxParameter(call,");
writer.write ("Value" + i
- + ", (void*)Axis_Serialize_" + paraTypeName
- + ", (void*)Axis_Delete_" + paraTypeName
- + ", cPrefixAndParamName" + i + ", Axis_URI_" + paraTypeName);
+ + ", (void*)Axis_Serialize_" + paramTypeName
+ + ", (void*)Axis_Delete_" + paramTypeName
+ + ", cPrefixAndParamName" + i + ", Axis_URI_" + paramTypeName);
}
}
@@ -916,65 +863,11 @@
writer.write ("\treturn pReturn;\n");
}
- // ===================================================================
- // end of function body
- // ===================================================================
-
+ //=============================================================================
+ // End of method
+ //=============================================================================
+
writer.write("}\n");
}
-private void writeFaultHandlingCode(MethodInfo minfo) throws WrapperFault, IOException
-{
- writer.write ("\taxiscCallSetSoapFaultNamespace(call, \""
- + wscontext.getWrapInfo ().getTargetEndpointURI () + "\");\n");
-
- //to get fault info
- Iterator paramsFault = minfo.getFaultType ().iterator ();
- String faultInfoName = null;
- String langName = null;
-
- while (paramsFault.hasNext ())
- {
- FaultInfo info = (FaultInfo) paramsFault.next ();
- faultInfoName = info.getFaultInfo ();
-
- // FJP - D0004 > Looking through the list of attributes for the 'error' part of
- // the fault message. If found, update the faultInfoName with the
- // 'localname' of the qname of the attribute.
- Iterator infoArrayListIterator = info.getParams ().iterator ();
- boolean found = false;
-
- while (infoArrayListIterator.hasNext () && !found)
- {
- ParameterInfo paramInfo = (ParameterInfo) infoArrayListIterator.next ();
-
- if (paramInfo != null)
- if ("error".equals (paramInfo.getParamName ()))
- {
- faultInfoName = paramInfo.getElementName ().getLocalPart ();
- found = true;
- }
- }
-
- ArrayList paramInfo = info.getParams ();
- for (int i = 0; i < paramInfo.size (); i++)
- {
- ParameterInfo par = (ParameterInfo) paramInfo.get (i);
- langName = par.getLangName ();
-
- writer.write ("\taxiscCallAddSoapFaultToList(call, \""
- + faultInfoName + "\", "
- + "(void*) Axis_Create_" + langName + ", "
- + "(void*) Axis_Delete_" + langName + ", "
- + "(void*) Axis_DeSerialize_" + langName + ");\n");
- }
- }
-}
-
- /* (non-Javadoc)
- * @see org.apache.axis.wsdl.wsdl2ws.c.CFileWriter#writeGlobalCodes()
- */
- protected void writeGlobalCodes() throws WrapperFault
- {
- }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org