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 na...@apache.org on 2006/03/16 02:24:13 UTC
svn commit: r386235 [2/3] -
/webservices/axis/trunk/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/literal/
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=386235&r1=386234&r2=386235&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 Mar 15 17:24:11 2006
@@ -50,7 +50,7 @@
{
public ClientStubWriter (WebServiceContext wscontext) throws WrapperFault
{
- super (wscontext);
+ super (wscontext);
}
/* (non-Javadoc)
@@ -58,27 +58,27 @@
*/
protected void writeConstructors () throws WrapperFault
{
- try
- {
- writer.write (classname
- + "::"
- + classname
- +
- "(const char* pcEndpointUri, AXIS_PROTOCOL_TYPE eProtocol):Stub(pcEndpointUri, eProtocol)\n{\n");
- writer.write ("}\n\n");
- writer.write (classname
- + "::"
- + classname + "()\n:Stub(\" \", APTHTTP1_1)\n{\n");
- //TODO get TransportURI from WrapInfo and check what the transport is and do the following line accordingly
- writer.write ("\tm_pCall->setEndpointURI(\""
- + wscontext.getWrapInfo ().getTargetEndpointURI ()
- + "\");\n");
- writer.write ("}\n\n");
- }
- catch (IOException e)
- {
- throw new WrapperFault (e);
- }
+ try
+ {
+ writer.write (classname
+ + "::"
+ + classname
+ +
+ "(const char* pcEndpointUri, AXIS_PROTOCOL_TYPE eProtocol):Stub(pcEndpointUri, eProtocol)\n{\n");
+ writer.write ("}\n\n");
+ writer.write (classname
+ + "::"
+ + classname + "()\n:Stub(\" \", APTHTTP1_1)\n{\n");
+ //TODO get TransportURI from WrapInfo and check what the transport is and do the following line accordingly
+ writer.write ("\tm_pCall->setEndpointURI(\""
+ + wscontext.getWrapInfo ().getTargetEndpointURI ()
+ + "\");\n");
+ writer.write ("}\n\n");
+ }
+ catch (IOException e)
+ {
+ throw new WrapperFault (e);
+ }
}
/* (non-Javadoc)
@@ -98,10 +98,10 @@
writer.write("\n");
}
}
- catch (IOException e)
- {
- throw new WrapperFault (e);
- }
+ catch (IOException e)
+ {
+ throw new WrapperFault (e);
+ }
}
/* (non-Javadoc)
@@ -109,29 +109,29 @@
*/
protected void writePreprocessorStatements () throws WrapperFault
{
- try
- {
- if ("AxisClientException".equals (classname))
- {
- writer.write ("#include \""
- + getServiceName ()
- + "_"
- + classname
- + CUtils.CPP_HEADER_SUFFIX + "\"\n\n");
- }
- else
- {
- writer.write ("#include \""
- + classname
- + CUtils.CPP_HEADER_SUFFIX + "\"\n\n");
- }
- writer.write ("#include <axis/AxisWrapperAPI.hpp>\n");
- writer.write ("#include <axis/Axis.hpp>\n\n");
- }
- catch (IOException e)
- {
- throw new WrapperFault (e);
- }
+ try
+ {
+ if ("AxisClientException".equals (classname))
+ {
+ writer.write ("#include \""
+ + getServiceName ()
+ + "_"
+ + classname
+ + CUtils.CPP_HEADER_SUFFIX + "\"\n\n");
+ }
+ else
+ {
+ writer.write ("#include \""
+ + classname
+ + CUtils.CPP_HEADER_SUFFIX + "\"\n\n");
+ }
+ writer.write ("#include <axis/AxisWrapperAPI.hpp>\n");
+ writer.write ("#include <axis/Axis.hpp>\n\n");
+ }
+ catch (IOException e)
+ {
+ throw new WrapperFault (e);
+ }
}
/**
@@ -143,250 +143,250 @@
*/
public void writeMethodInWrapper (MethodInfo minfo)
- throws WrapperFault, IOException
+ throws WrapperFault, IOException
+ {
+ boolean isAllTreatedAsOutParams = false;
+ ParameterInfo returntype = null;
+ int noOfOutParams = minfo.getOutputParameterTypes ().size ();
+ if (0 == noOfOutParams)
{
- 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
- {
- isAllTreatedAsOutParams = true;
- }
- }
- Collection params = minfo.getInputParameterTypes ();
- String methodName = minfo.getMethodname ();
- Type retType = null;
- boolean returntypeissimple = false;
- boolean returntypeisarray = false;
- String outparamType = null;
- if (returntype != null)
- {
- retType =
- wscontext.getTypemap ().getType (returntype.getSchemaName ());
- }
- if (retType != null)
- {
- if (retType.isSimpleType ())
- {
- outparamType = CUtils.getclass4qname (retType.getBaseType ());
- }
- else
- {
- outparamType =
- WrapperUtils.
- getClassNameFromParamInfoConsideringArrays (returntype,
- wscontext);
+ returntype = null;
+ }
+ else
+ {
+
+ if (1 == noOfOutParams)
+ {
+ returntype =
+ (ParameterInfo) minfo.getOutputParameterTypes ().
+ iterator ().next ();
+ }
+ else
+ {
+ isAllTreatedAsOutParams = true;
+ }
+ }
+ Collection params = minfo.getInputParameterTypes ();
+ String methodName = minfo.getMethodname ();
+ Type retType = null;
+ boolean returntypeissimple = false;
+ boolean returntypeisarray = false;
+ String outparamType = null;
+ if (returntype != null)
+ {
+ retType =
+ wscontext.getTypemap ().getType (returntype.getSchemaName ());
+ }
+ if (retType != null)
+ {
+ if (retType.isSimpleType ())
+ {
+ outparamType = CUtils.getclass4qname (retType.getBaseType ());
+ }
+ else
+ {
+ outparamType =
+ WrapperUtils.
+ getClassNameFromParamInfoConsideringArrays (returntype,
+ wscontext);
//retType.getLanguageSpecificName();
- returntypeisarray = (outparamType.lastIndexOf ("_Array") > 0);
- }
- returntypeisarray |= retType.isArray ();
- }
- else
- {
-
- if (returntype != null)
- {
- outparamType = returntype.getLangName ();
- }
- }
- if (returntype != null)
- {
- returntypeissimple = CUtils.isSimpleType (outparamType);
- }
- writer.write ("\n/*\n");
- writer.write (" * This method wrap the service method" + methodName +
- "\n");
- writer.write (" */\n");
- //method signature
- String paraTypeName;
- boolean typeisarray = false;
- boolean typeissimple = false;
- Type type;
- if (returntype == null)
- {
- writer.write ("void");
- }
- else
- {
- if (returntypeissimple
+ returntypeisarray = (outparamType.lastIndexOf ("_Array") > 0);
+ }
+ returntypeisarray |= retType.isArray ();
+ }
+ else
+ {
+
+ if (returntype != null)
+ {
+ outparamType = returntype.getLangName ();
+ }
+ }
+ if (returntype != null)
+ {
+ returntypeissimple = CUtils.isSimpleType (outparamType);
+ }
+ writer.write ("\n/*\n");
+ writer.write (" * This method wrap the service method" + methodName +
+ "\n");
+ writer.write (" */\n");
+ //method signature
+ String paraTypeName;
+ boolean typeisarray = false;
+ boolean typeissimple = false;
+ Type type;
+ if (returntype == null)
+ {
+ writer.write ("void");
+ }
+ else
+ {
+ if (returntypeissimple
&& (!(returntype.isNillable() || returntype.isOptional()) || CUtils
.isPointerType(outparamType)))
- {
- writer.write (outparamType);
- }
- else if (outparamType.lastIndexOf ("*") > 0)
- {
- writer.write (outparamType);
- }
- else
- { //for AnyType too
- writer.write (outparamType + "*");
- }
- }
- writer.write (" " + classname + "::" + methodName + "(");
- ArrayList paramsB = (ArrayList) params;
- ParameterInfo paramtype = null;
- if (0 < paramsB.size ())
- {
- type =
- 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
- 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;
- }
- 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");
- }
- else if (paraTypeName.lastIndexOf ("*") > 0)
- {
- writer.write (paraTypeName + " Value0");
- }
- else
- { //for AnyType too
- writer.write (paraTypeName + "* Value0");
- }
- for (int i = 1; i < paramsB.size (); i++)
- {
- 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 =
- ((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);
- }
- }
- }
-
- // Multiples parameters so fill the methods prototype
- ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes ();
- if (isAllTreatedAsOutParams)
- {
- for (int i = 0; i < paramsC.size (); i++)
- {
- String baseTypeName = null;
- type =
- wscontext.getTypemap ().getType (((ParameterInfo) paramsC.
- get (i)).
- getSchemaName ());
+ {
+ writer.write (outparamType);
+ }
+ else if (outparamType.lastIndexOf ("*") > 0)
+ {
+ writer.write (outparamType);
+ }
+ else
+ { //for AnyType too
+ writer.write (outparamType + "*");
+ }
+ }
+ writer.write (" " + classname + "::" + methodName + "(");
+ ArrayList paramsB = (ArrayList) params;
+ ParameterInfo paramtype = null;
+ if (0 < paramsB.size ())
+ {
+ type =
+ 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
+ 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;
+ }
+ 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");
+ }
+ else if (paraTypeName.lastIndexOf ("*") > 0)
+ {
+ writer.write (paraTypeName + " Value0");
+ }
+ else
+ { //for AnyType too
+ writer.write (paraTypeName + "* Value0");
+ }
+ for (int i = 1; i < paramsB.size (); i++)
+ {
+ 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 =
+ ((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);
+ }
+ }
+ }
+
+ // Multiples parameters so fill the methods prototype
+ ArrayList paramsC = (ArrayList) minfo.getOutputParameterTypes ();
+ if (isAllTreatedAsOutParams)
+ {
+ 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);
+ ParameterInfo param = (ParameterInfo) paramsC.get (i);
+ String paramType = WrapperUtils.getClassNameFromParamInfoConsideringArrays (param, wscontext);
if (type.isSimpleType())
{
baseTypeName = CUtils.getclass4qname(type.getBaseType());
@@ -433,1037 +433,1037 @@
}
writer.write(" OutValue" + i);
- }
- }
+ }
+ }
- writer.write (")\n{\n");
-
- if (returntype != null)
- {
- writer.write ("\t");
-
- if (returntypeisarray)
- {
- //for arrays
- writer.write (outparamType + " * RetArray = new " + outparamType + "();\n");
- }
- else
- {
- if (!returntypeissimple)
- { //for AnyType too
- if (outparamType.lastIndexOf ("*") > 0)
- {
- writer.write (outparamType + " pReturn = NULL;\n");
- }
- else
- writer.write (outparamType + "* pReturn = NULL;\n");
- //for complex types
- }
- else
- {
- //for simple types
- if ((returntype.isNillable () || returntype.isOptional())
- && !(CUtils.isPointerType(outparamType)))
- {
- writer.write (outparamType + "* Ret = NULL;\n");
- }
- else
- {
- String initValue = CUtils.getInitValue (outparamType);
- if (initValue != null)
- {
- writer.write (outparamType + " Ret = " +
- initValue + ";\n");
- }
- else
- {
- if (outparamType.equals ("xsd__dateTime")
- || outparamType.equals ("xsd__date")
- || outparamType.equals ("xsd__time"))
- {
- writer.write (outparamType + " Ret;\n");
- writer.write ("\tmemset(&Ret,0,sizeof(" +
- outparamType + "));\n");
- }
- else
- {
- writer.write (outparamType + " Ret;\n");
- }
- }
- }
- }
- //TODO initialize return parameter appropriately.
- }
- }
- writer.write ("\tconst char* pcCmplxFaultName;\n");
- writer.write ("\tpcCmplxFaultName = NULL;\n");
- writer.write ("\ttry\n\t{");
-
- writer.
- write
- ("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER" +
- ")) return ");
- if (returntype != null)
- {
- writer.write ((returntypeisarray
- ? "RetArray"
- : returntypeissimple
- ? "Ret" : "pReturn") + ";\n\t");
- }
- else
- {
- writer.write (";\n");
- }
- writer.
- write
- ("\tif (NULL==m_pCall->getTransportProperty(\"SOAPAction\",false))\n");
- writer.write ("\t{\n");
- writer.
- write ("\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
- + minfo.getSoapAction () + "\");\n");
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
- //TODO check which version is it really.
-
- if( minfo.getInputMessage() != null)
- {
- writer.write( "\tm_pCall->setOperation(\"" +
- minfo.getInputMessage().getLocalPart() +
- "\", \"" +
- minfo.getInputMessage().getNamespaceURI() +
- "\");\n");
- }
-
- // Add attributes to soap method
- for (int i = 0; i < paramsB.size (); i++)
- {
- ParameterInfo param = (ParameterInfo) paramsB.get (i);
- if (param.isAttribute ())
- {
- String elementType = param.getElementName ().getLocalPart ();
-
- if ("string".equals (elementType))
- {
- writer.write ("\tm_pCall->setSOAPMethodAttribute(\""
- + param.getParamName ()
- + "\", \"\", Value" + i + ");\n");
- }
- else
- {
- if ("int".equals (elementType))
- {
- writer.write ("\t{\n");
- writer.write ("\t\tchar buffer[20];\n");
- writer.write ("\t\tsprintf(buffer,\"%d\", Value" + i +
- ");\n");
- writer.
- write ("\t\tm_pCall->setSOAPMethodAttribute(\"" +
- param.getParamName () +
- "\", \"\", buffer);\n");
- writer.write ("\t}\n");
- }
- }
- }
- }
-
- //new calls from stub base
- writer.write ("\tincludeSecure();\n"); // FJP - SecureChannel
- writer.write ("\tapplyUserPreferences();\n");
-
- for (int i = 0; i < paramsB.size (); i++)
- {
- ParameterInfo param = (ParameterInfo) paramsB.get (i);
-
- // Ignore attributes, while adding elements
- if (!param.isAttribute ())
- {
- type =
- wscontext.getTypemap ().getType (param.getSchemaName ());
- if (type != null)
- {
- if (type.isSimpleType ())
- { //schema defined simpleType possibly with restrictions
- paraTypeName =
- CUtils.getclass4qname (type.getBaseType ());
- }
- else
- {
- paraTypeName = type.getLanguageSpecificName ();
- if (CUtils.isSimpleType (paraTypeName))
- paraTypeName =
- WrapperUtils.
- getClassNameFromParamInfoConsideringArrays
- (param,
- //returntype,
- wscontext);
- typeisarray =
- (paraTypeName.lastIndexOf ("_Array") > 0);
- if (!typeisarray)
- paraTypeName = type.getLanguageSpecificName ();
- }
- typeisarray |= type.isArray ();
- }
- else
- {
- paraTypeName =
- ((ParameterInfo) paramsB.get (i)).getLangName ();
- typeisarray = false;
- }
-
- if (param.isAnyType ())
- {
- //for anyType
- writer.write ("\tm_pCall->addAnyObject(Value" + i);
- }
- else
- {
- //String parameterName = ((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart();
- //Samisa 22/08/2004
- String parameterName =
- ((ParameterInfo) paramsB.get (i)).
- getElementNameAsString ();
- //Samisa
- String namespace =
- ((ParameterInfo) paramsB.get (i)).getElementName ().
- getNamespaceURI ();
-
- if (((ParameterInfo)paramsB.get(i)).isOptional())
- {
- writer.write("\tif (Value" + i + " != NULL)\n\t{\n");
- }
-
- if (namespace.length () == 0)
- {
- writer.write ("\tchar cPrefixAndParamName"
- + i
- + "["
- + "] = \"" + parameterName + "\";\n");
- }
- else
- {
- int stringLength =
- 8 + 1 + parameterName.length () + 1;
- writer.write ("\tchar cPrefixAndParamName" + i + "[" +
- stringLength + "];\n");
- writer.write ("\tsprintf( cPrefixAndParamName" + i +
- ", \"%s:" + parameterName +
- "\", m_pCall->getNamespacePrefix(\"" +
- namespace + "\"));\n");
- }
-
- if (param.getType().isAttachment())
- {
- String attchType = param.getType().getName().getLocalPart();
+ writer.write (")\n{\n");
+
+ if (returntype != null)
+ {
+ writer.write ("\t");
+
+ if (returntypeisarray)
+ {
+ //for arrays
+ writer.write (outparamType + " * RetArray = new " + outparamType + "();\n");
+ }
+ else
+ {
+ if (!returntypeissimple)
+ { //for AnyType too
+ if (outparamType.lastIndexOf ("*") > 0)
+ {
+ writer.write (outparamType + " pReturn = NULL;\n");
+ }
+ else
+ writer.write (outparamType + "* pReturn = NULL;\n");
+ //for complex types
+ }
+ else
+ {
+ //for simple types
+ if ((returntype.isNillable () || returntype.isOptional())
+ && !(CUtils.isPointerType(outparamType)))
+ {
+ writer.write (outparamType + "* Ret = NULL;\n");
+ }
+ else
+ {
+ String initValue = CUtils.getInitValue (outparamType);
+ if (initValue != null)
+ {
+ writer.write (outparamType + " Ret = " +
+ initValue + ";\n");
+ }
+ else
+ {
+ if (outparamType.equals ("xsd__dateTime")
+ || outparamType.equals ("xsd__date")
+ || outparamType.equals ("xsd__time"))
+ {
+ writer.write (outparamType + " Ret;\n");
+ writer.write ("\tmemset(&Ret,0,sizeof(" +
+ outparamType + "));\n");
+ }
+ else
+ {
+ writer.write (outparamType + " Ret;\n");
+ }
+ }
+ }
+ }
+ //TODO initialize return parameter appropriately.
+ }
+ }
+ writer.write ("\tconst char* pcCmplxFaultName;\n");
+ writer.write ("\tpcCmplxFaultName = NULL;\n");
+ writer.write ("\ttry\n\t{");
+
+ writer.
+ write
+ ("\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_DOC_PROVIDER" +
+ ")) return ");
+ if (returntype != null)
+ {
+ writer.write ((returntypeisarray
+ ? "RetArray"
+ : returntypeissimple
+ ? "Ret" : "pReturn") + ";\n\t");
+ }
+ else
+ {
+ writer.write (";\n");
+ }
+ writer.
+ write
+ ("\tif (NULL==m_pCall->getTransportProperty(\"SOAPAction\",false))\n");
+ writer.write ("\t{\n");
+ writer.
+ write ("\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""
+ + minfo.getSoapAction () + "\");\n");
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n");
+ //TODO check which version is it really.
+
+ if( minfo.getInputMessage() != null)
+ {
+ writer.write( "\tm_pCall->setOperation(\"" +
+ minfo.getInputMessage().getLocalPart() +
+ "\", \"" +
+ minfo.getInputMessage().getNamespaceURI() +
+ "\");\n");
+ }
+
+ // Add attributes to soap method
+ for (int i = 0; i < paramsB.size (); i++)
+ {
+ ParameterInfo param = (ParameterInfo) paramsB.get (i);
+ if (param.isAttribute ())
+ {
+ String elementType = param.getElementName ().getLocalPart ();
+
+ if ("string".equals (elementType))
+ {
+ writer.write ("\tm_pCall->setSOAPMethodAttribute(\""
+ + param.getParamName ()
+ + "\", \"\", Value" + i + ");\n");
+ }
+ else
+ {
+ if ("int".equals (elementType))
+ {
+ writer.write ("\t{\n");
+ writer.write ("\t\tchar buffer[20];\n");
+ writer.write ("\t\tsprintf(buffer,\"%d\", Value" + i +
+ ");\n");
+ writer.
+ write ("\t\tm_pCall->setSOAPMethodAttribute(\"" +
+ param.getParamName () +
+ "\", \"\", buffer);\n");
+ writer.write ("\t}\n");
+ }
+ }
+ }
+ }
+
+ //new calls from stub base
+ writer.write ("\tincludeSecure();\n"); // FJP - SecureChannel
+ writer.write ("\tapplyUserPreferences();\n");
+
+ for (int i = 0; i < paramsB.size (); i++)
+ {
+ ParameterInfo param = (ParameterInfo) paramsB.get (i);
+
+ // Ignore attributes, while adding elements
+ if (!param.isAttribute ())
+ {
+ type =
+ wscontext.getTypemap ().getType (param.getSchemaName ());
+ if (type != null)
+ {
+ if (type.isSimpleType ())
+ { //schema defined simpleType possibly with restrictions
+ paraTypeName =
+ CUtils.getclass4qname (type.getBaseType ());
+ }
+ else
+ {
+ paraTypeName = type.getLanguageSpecificName ();
+ if (CUtils.isSimpleType (paraTypeName))
+ paraTypeName =
+ WrapperUtils.
+ getClassNameFromParamInfoConsideringArrays
+ (param,
+ //returntype,
+ wscontext);
+ typeisarray =
+ (paraTypeName.lastIndexOf ("_Array") > 0);
+ if (!typeisarray)
+ paraTypeName = type.getLanguageSpecificName ();
+ }
+ typeisarray |= type.isArray ();
+ }
+ else
+ {
+ paraTypeName =
+ ((ParameterInfo) paramsB.get (i)).getLangName ();
+ typeisarray = false;
+ }
+
+ if (param.isAnyType ())
+ {
+ //for anyType
+ writer.write ("\tm_pCall->addAnyObject(Value" + i);
+ }
+ else
+ {
+ //String parameterName = ((ParameterInfo)paramsB.get(i)).getElementName().getLocalPart();
+ //Samisa 22/08/2004
+ String parameterName =
+ ((ParameterInfo) paramsB.get (i)).
+ getElementNameAsString ();
+ //Samisa
+ String namespace =
+ ((ParameterInfo) paramsB.get (i)).getElementName ().
+ getNamespaceURI ();
+
+ if (((ParameterInfo)paramsB.get(i)).isOptional())
+ {
+ writer.write("\tif (Value" + i + " != NULL)\n\t{\n");
+ }
+
+ if (namespace.length () == 0)
+ {
+ writer.write ("\tchar cPrefixAndParamName"
+ + i
+ + "["
+ + "] = \"" + parameterName + "\";\n");
+ }
+ else
+ {
+ int stringLength =
+ 8 + 1 + parameterName.length () + 1;
+ writer.write ("\tchar cPrefixAndParamName" + i + "[" +
+ stringLength + "];\n");
+ writer.write ("\tsprintf( cPrefixAndParamName" + i +
+ ", \"%s:" + parameterName +
+ "\", m_pCall->getNamespacePrefix(\"" +
+ namespace + "\"));\n");
+ }
+
+ if (param.getType().isAttachment())
+ {
+ String attchType = param.getType().getName().getLocalPart();
writer.write("\n\tconst AxisChar *xmlSoapNsPfx" + i +
- " = m_pCall->getNamespacePrefix(\"" +
- WrapperConstants.APACHE_XMLSOAP_NAMESPACE + "\");\n");
- writer.write("\tchar attchType" + i + "[64];\n");
- writer.write("\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
- writer.write("\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
- writer.write("\tIAttribute *attrs" + i + "[2];\n");
- writer.write("\tattrs" + i + "[0] = m_pCall->createAttribute(\"type\", \"xsi\", attchType" + i +
- ");\n");
- writer.write("\tattrs" + i + "[1] = m_pCall->createAttribute(xmlSoapNsPfx" + i +
- ", \"xmlns\", \"http://xml.apache.org/xml-soap\");\n");
- writer.write("\tm_pCall->addAttachmentParameter(Value" + i + ", cPrefixAndParamName" + i +
- ", attrs" + i + ", 2");
- }
- else if (typeisarray)
- {
- // Array
- Type arrayType = WrapperUtils.getArrayType (type);
-
- QName qname = null;
- if (arrayType != null)
- qname = arrayType.getName ();
- else
- qname = type.getName ();
- if (CUtils.isSimpleType (qname))
- {
- // Array of simple type
- String containedType =
- CUtils.getclass4qname (qname);
- writer.
- write ("\tm_pCall->addBasicArrayParameter(");
- writer.write ("Value" + i + ", " +
- CUtils.
- getXSDTypeForBasicType
- (containedType) +
- ", cPrefixAndParamName" + i);
- }
- else
- {
- if (arrayType != null
- && arrayType.isSimpleType ())
- {
- // Simple type in the schema
- String containedType =
- CUtils.getclass4qname (arrayType.
- getBaseType ());
- writer.
- write
- ("\tm_pCall->addBasicArrayParameter(");
- writer.write ("Value" + i +
- ", " +
- CUtils.
- getXSDTypeForBasicType
- (containedType) +
- ", cPrefixAndParamName" + i);
- }
- else
- {
- // Array of complex type
- String containedType = qname.getLocalPart ();
- writer.
- write
- ("\tm_pCall->addCmplxArrayParameter(");
- writer.write ("Value" + i +
- ", (void*)Axis_Serialize_" +
- containedType +
- ", (void*)Axis_Delete_" +
- containedType +
- ", (void*) Axis_GetSize_" +
- containedType + ", \"" +
- parameterName + "\"" + ", ");
- if (namespace.length () == 0)
- {
- writer.write ("NULL");
- }
- else
- {
- writer.write ("Axis_URI_"
- + containedType);
- }
- }
- }
- }
- else
- {
- if (CUtils.isSimpleType (paraTypeName))
- {
-
- // Simple Type
- if (param.isNillable () || param.isOptional()
- || CUtils.isPointerType(paraTypeName))
- {
- writer.write ("\tm_pCall->addParameter(");
- writer.write ("(void*)Value"
- + i
- + ", cPrefixAndParamName"
- + i
- + ", "
- +
- CUtils.
- getXSDTypeForBasicType
- (paraTypeName));
- }
- else
- {
- writer.write ("\tm_pCall->addParameter(");
- writer.write ("(void*)&Value"
- + i
- + ", cPrefixAndParamName"
- + i
- + ", "
- +
- CUtils.
- getXSDTypeForBasicType
- (paraTypeName));
- }
- }
- else
- {
- // Complex Type
- writer.write ("\tm_pCall->addCmplxParameter(");
- writer.write ("Value"
- + i
- + ", (void*)Axis_Serialize_"
- + paraTypeName
- + ", (void*)Axis_Delete_"
- + paraTypeName
- + ", cPrefixAndParamName"
- + i + ", Axis_URI_" + paraTypeName);
- }
- }
-
- }
- // Adrian - end of namespace correction
- writer.write (");\n");
- if (((ParameterInfo)paramsB.get(i)).isOptional())
- {
- writer.write("\t}\n");
- }
- }
- }
- writer.write ("\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t{\n");
- if (minfo.getOutputMessage () != null)
- {
- writer.write ("\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
- + minfo.getOutputMessage ().getLocalPart ()
- + "\", \""
- + minfo.getOutputMessage ().getNamespaceURI ()
- + "\"))\n\t\t{\n");
- }
- if (isAllTreatedAsOutParams)
- {
- String currentParamName;
- String currentParaType;
- for (int i = 0; i < paramsC.size (); i++)
- {
- String baseTypeName = null;
- ParameterInfo currentType = (ParameterInfo) paramsC.get (i);
- type =
- wscontext.getTypemap ().getType (currentType.
- getSchemaName ());
- if (type != null)
- {
- 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
- {
- 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;
-
- 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(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 ("\t\t}\n");
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- }
- else
- {
- if (returntype == null)
- {
- if (minfo.getOutputMessage () != null)
- {
- writer.write ("\t\t\t/*not successful*/\n\t\t}\n");
- }
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- //writer.write("\t}\n\tm_pCall->unInitialize();\n");
- }
- else
- {
-
- if (returntypeisarray)
- {
- QName qname = null;
- if (WrapperUtils.getArrayType (retType) != null)
- qname =
- WrapperUtils.getArrayType (retType).getName ();
- else
- qname = retType.getName ();
- String containedType = null;
- if (CUtils.isSimpleType (qname))
- {
- containedType = CUtils.getclass4qname (qname);
- writer.write ("\t\t\tAxis_Array * RetAxisArray = m_pCall->getBasicArray("
- + CUtils.getXSDTypeForBasicType (containedType)
- + ", \"" + returntype.getParamName () + "\", 0);\n");
- writer.write ("\t\t\tRetArray->clone(*RetAxisArray);\n");
- writer.write ("\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n");
- }
- else
- {
- containedType = qname.getLocalPart ();
- writer.write("\t\t\tRetArray = (" + containedType + "_Array *) m_pCall->getCmplxArray(RetArray, (void*) Axis_DeSerialize_"
- + containedType
- + ", (void*) Axis_Create_"
- + containedType
- + ", (void*) Axis_Delete_"
- + containedType
- + ", (void*) Axis_GetSize_"
- + containedType
- + ", \""
- + returntype.getElementNameAsString ()
- + "\", Axis_URI_"
- + containedType
- + ");\n");
- }
- writer.write ("\t\t}\n");
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- // writer.write("\t}\n\tm_pCall->unInitialize();\n");
- writer.write ("\treturn RetArray;\n");
- }
- else
- {
-
- if (returntypeissimple)
- {
- if (returntype.isNillable ())
- {
- if( CUtils.isPointerType( outparamType))
- {
- writer.write( "\t\t\t" + outparamType + " pReturn = m_pCall->" + CUtils.getParameterGetValueMethodName( outparamType, false) + "(\"" + returntype.getParamName() + "\", 0);\n");
- }
- else
- {
- writer.write( "\t\t\t" + outparamType + " * pReturn = m_pCall->" + CUtils.getParameterGetValueMethodName( outparamType, false) + "(\"" + returntype.getParamName() + "\", 0);\n");
- }
- writer.write( "\n");
+ " = m_pCall->getNamespacePrefix(\"" +
+ WrapperConstants.APACHE_XMLSOAP_NAMESPACE + "\");\n");
+ writer.write("\tchar attchType" + i + "[64];\n");
+ writer.write("\tstrcpy(attchType" + i + ", xmlSoapNsPfx" + i + ");\n");
+ writer.write("\tstrcat(attchType" + i + ", \":" + attchType + "\");\n");
+ writer.write("\tIAttribute *attrs" + i + "[2];\n");
+ writer.write("\tattrs" + i + "[0] = m_pCall->createAttribute(\"type\", \"xsi\", attchType" + i +
+ ");\n");
+ writer.write("\tattrs" + i + "[1] = m_pCall->createAttribute(xmlSoapNsPfx" + i +
+ ", \"xmlns\", \"http://xml.apache.org/xml-soap\");\n");
+ writer.write("\tm_pCall->addAttachmentParameter(Value" + i + ", cPrefixAndParamName" + i +
+ ", attrs" + i + ", 2");
+ }
+ else if (typeisarray)
+ {
+ // Array
+ Type arrayType = WrapperUtils.getArrayType (type);
+
+ QName qname = null;
+ if (arrayType != null)
+ qname = arrayType.getName ();
+ else
+ qname = type.getName ();
+ if (CUtils.isSimpleType (qname))
+ {
+ // Array of simple type
+ String containedType =
+ CUtils.getclass4qname (qname);
+ writer.
+ write ("\tm_pCall->addBasicArrayParameter(");
+ writer.write ("Value" + i + ", " +
+ CUtils.
+ getXSDTypeForBasicType
+ (containedType) +
+ ", cPrefixAndParamName" + i);
+ }
+ else
+ {
+ if (arrayType != null
+ && arrayType.isSimpleType ())
+ {
+ // Simple type in the schema
+ String containedType =
+ CUtils.getclass4qname (arrayType.
+ getBaseType ());
+ writer.
+ write
+ ("\tm_pCall->addBasicArrayParameter(");
+ writer.write ("Value" + i +
+ ", " +
+ CUtils.
+ getXSDTypeForBasicType
+ (containedType) +
+ ", cPrefixAndParamName" + i);
+ }
+ else
+ {
+ // Array of complex type
+ String containedType = qname.getLocalPart ();
+ writer.
+ write
+ ("\tm_pCall->addCmplxArrayParameter(");
+ writer.write ("Value" + i +
+ ", (void*)Axis_Serialize_" +
+ containedType +
+ ", (void*)Axis_Delete_" +
+ containedType +
+ ", (void*) Axis_GetSize_" +
+ containedType + ", \"" +
+ parameterName + "\"" + ", ");
+ if (namespace.length () == 0)
+ {
+ writer.write ("NULL");
+ }
+ else
+ {
+ writer.write ("Axis_URI_"
+ + containedType);
+ }
+ }
+ }
+ }
+ else
+ {
+ if (CUtils.isSimpleType (paraTypeName))
+ {
+
+ // Simple Type
+ if (param.isNillable () || param.isOptional()
+ || CUtils.isPointerType(paraTypeName))
+ {
+ writer.write ("\tm_pCall->addParameter(");
+ writer.write ("(void*)Value"
+ + i
+ + ", cPrefixAndParamName"
+ + i
+ + ", "
+ +
+ CUtils.
+ getXSDTypeForBasicType
+ (paraTypeName));
+ }
+ else
+ {
+ writer.write ("\tm_pCall->addParameter(");
+ writer.write ("(void*)&Value"
+ + i
+ + ", cPrefixAndParamName"
+ + i
+ + ", "
+ +
+ CUtils.
+ getXSDTypeForBasicType
+ (paraTypeName));
+ }
+ }
+ else
+ {
+ // Complex Type
+ writer.write ("\tm_pCall->addCmplxParameter(");
+ writer.write ("Value"
+ + i
+ + ", (void*)Axis_Serialize_"
+ + paraTypeName
+ + ", (void*)Axis_Delete_"
+ + paraTypeName
+ + ", cPrefixAndParamName"
+ + i + ", Axis_URI_" + paraTypeName);
+ }
+ }
+
+ }
+ // Adrian - end of namespace correction
+ writer.write (");\n");
+ if (((ParameterInfo)paramsB.get(i)).isOptional())
+ {
+ writer.write("\t}\n");
+ }
+ }
+ }
+ writer.write ("\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t{\n");
+ if (minfo.getOutputMessage () != null)
+ {
+ writer.write ("\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""
+ + minfo.getOutputMessage ().getLocalPart ()
+ + "\", \""
+ + minfo.getOutputMessage ().getNamespaceURI ()
+ + "\"))\n\t\t{\n");
+ }
+ if (isAllTreatedAsOutParams)
+ {
+ String currentParamName;
+ String currentParaType;
+ for (int i = 0; i < paramsC.size (); i++)
+ {
+ String baseTypeName = null;
+ ParameterInfo currentType = (ParameterInfo) paramsC.get (i);
+ type =
+ wscontext.getTypemap ().getType (currentType.
+ getSchemaName ());
+ if (type != null)
+ {
+ 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
+ {
+ 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;
+
+ 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(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 ("\t\t}\n");
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ }
+ else
+ {
+ if (returntype == null)
+ {
+ if (minfo.getOutputMessage () != null)
+ {
+ writer.write ("\t\t\t/*not successful*/\n\t\t}\n");
+ }
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ //writer.write("\t}\n\tm_pCall->unInitialize();\n");
+ }
+ else
+ {
+
+ if (returntypeisarray)
+ {
+ QName qname = null;
+ if (WrapperUtils.getArrayType (retType) != null)
+ qname =
+ WrapperUtils.getArrayType (retType).getName ();
+ else
+ qname = retType.getName ();
+ String containedType = null;
+ if (CUtils.isSimpleType (qname))
+ {
+ containedType = CUtils.getclass4qname (qname);
+ writer.write ("\t\t\tAxis_Array * RetAxisArray = m_pCall->getBasicArray("
+ + CUtils.getXSDTypeForBasicType (containedType)
+ + ", \"" + returntype.getParamName () + "\", 0);\n");
+ writer.write ("\t\t\tRetArray->clone(*RetAxisArray);\n");
+ writer.write ("\t\t\tAxis::AxisDelete( (void *)RetAxisArray, XSD_ARRAY);\n");
+ }
+ else
+ {
+ containedType = qname.getLocalPart ();
+ writer.write("\t\t\tRetArray = (" + containedType + "_Array *) m_pCall->getCmplxArray(RetArray, (void*) Axis_DeSerialize_"
+ + containedType
+ + ", (void*) Axis_Create_"
+ + containedType
+ + ", (void*) Axis_Delete_"
+ + containedType
+ + ", (void*) Axis_GetSize_"
+ + containedType
+ + ", \""
+ + returntype.getElementNameAsString ()
+ + "\", Axis_URI_"
+ + containedType
+ + ");\n");
+ }
+ writer.write ("\t\t}\n");
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ // writer.write("\t}\n\tm_pCall->unInitialize();\n");
+ writer.write ("\treturn RetArray;\n");
+ }
+ else
+ {
+
+ if (returntypeissimple)
+ {
+ if (returntype.isNillable ())
+ {
+ if( CUtils.isPointerType( outparamType))
+ {
+ writer.write( "\t\t\t" + outparamType + " pReturn = m_pCall->" + CUtils.getParameterGetValueMethodName( outparamType, false) + "(\"" + returntype.getParamName() + "\", 0);\n");
+ }
+ else
+ {
+ writer.write( "\t\t\t" + outparamType + " * pReturn = m_pCall->" + CUtils.getParameterGetValueMethodName( outparamType, false) + "(\"" + returntype.getParamName() + "\", 0);\n");
+ }
+ writer.write( "\n");
writer.write( "\t\t\tif( pReturn != NULL)\n");
writer.write( "\t\t\t{\n");
- if( CUtils.isPointerType(outparamType))
- {
- writer.write( "\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
- writer.write( "\t\t\t\tstrcpy( Ret, pReturn);\n");
- }
- else
- {
- writer.write( "\t\t\t\tRet = new " + outparamType + "();\n");
- writer.write( "\t\t\t\t*Ret = *pReturn;\n");
- }
- writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+ if( CUtils.isPointerType(outparamType))
+ {
+ writer.write( "\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
+ writer.write( "\t\t\t\tstrcpy( Ret, pReturn);\n");
+ }
+ else
+ {
+ writer.write( "\t\t\t\tRet = new " + outparamType + "();\n");
+ writer.write( "\t\t\t\t*Ret = *pReturn;\n");
+ }
+ writer.write( "\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
writer.write( "\t\t\t}\n");
writer.write( "\t\t}\n");
- }
- else
- {
- if (CUtils.isPointerType(outparamType))
- {
- writer.write ("\t\t\t" + outparamType +
- " pReturn = m_pCall->" +
- CUtils.
- getParameterGetValueMethodName
- (outparamType,
- false) + "(\"" +
- returntype.getParamName () +
- "\", 0);\n");
- writer.write ("\t\t\tif(pReturn)\n");
- writer.write ("\t\t\t{\n");
- writer.write ("\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
- writer.write ("\t\t\t\tstrcpy( Ret, pReturn);\n");
- writer.write ("\t\t\t\tAxis::AxisDelete( pReturn, XSD_STRING);\n");
- writer.write ("\t\t\t}\n");
- }
- else
- {
- writer.write ("\t\t\t" + outparamType +
- " * pReturn = m_pCall->" +
- CUtils.
- getParameterGetValueMethodName
- (outparamType,
- false) + "(\"" +
- returntype.getSOAPElementNameAsString() +
- "\", 0);\n");
- writer.write ("\t\t\tif(pReturn)\n");
- writer.write ("\t\t\t{\n");
-
- if( CUtils.isPointerType( outparamType))
- {
- writer.write ("\t\t\t\tRet = *pReturn;\n");
- }
- else
- {
- writer.write ("\t\t\t\tRet = *pReturn;\n");
- }
-
- writer.write ("\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
- writer.write ("\t\t\t}\n");
- }
- // TODO If we unexpectedly receive a nill value, when nillable="false" we should do something appropriate, perhaps as below:
+ }
+ else
+ {
+ if (CUtils.isPointerType(outparamType))
+ {
+ writer.write ("\t\t\t" + outparamType +
+ " pReturn = m_pCall->" +
+ CUtils.
+ getParameterGetValueMethodName
+ (outparamType,
+ false) + "(\"" +
+ returntype.getParamName () +
+ "\", 0);\n");
+ writer.write ("\t\t\tif(pReturn)\n");
+ writer.write ("\t\t\t{\n");
+ writer.write ("\t\t\t\tRet = new char[strlen( pReturn) + 1];\n");
+ writer.write ("\t\t\t\tstrcpy( Ret, pReturn);\n");
+ writer.write ("\t\t\t\tAxis::AxisDelete( pReturn, XSD_STRING);\n");
+ writer.write ("\t\t\t}\n");
+ }
+ else
+ {
+ writer.write ("\t\t\t" + outparamType +
+ " * pReturn = m_pCall->" +
+ CUtils.
+ getParameterGetValueMethodName
+ (outparamType,
+ false) + "(\"" +
+ returntype.getSOAPElementNameAsString() +
+ "\", 0);\n");
+ writer.write ("\t\t\tif(pReturn)\n");
+ writer.write ("\t\t\t{\n");
+
+ if( CUtils.isPointerType( outparamType))
+ {
+ writer.write ("\t\t\t\tRet = *pReturn;\n");
+ }
+ else
+ {
+ writer.write ("\t\t\t\tRet = *pReturn;\n");
+ }
+
+ writer.write ("\t\t\t\tAxis::AxisDelete( (void *) pReturn, " + CUtils.getXSDTypeForBasicType( outparamType) + ");\n");
+ writer.write ("\t\t\t}\n");
+ }
+ // TODO If we unexpectedly receive a nill value, when nillable="false" we should do something appropriate, perhaps as below:
// writer.write("\t\t\telse");
// writer.write("\t\t\t\tthrow new Exception(\"Unexpected use of nill\");");
- writer.write ("\t\t}\n");
+ writer.write ("\t\t}\n");
- }
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- // writer.write("\t}\n\tm_pCall->unInitialize();\n");
- writer.write ("\treturn Ret;\n");
- }
- else
- {
-
- if (returntype.isAnyType ())
- {
- //for anyTtype
- writer.write ("\t\t\tpReturn = ("
- + outparamType
- +
- "*)m_pCall->getAnyObject();\n\t\t}\n");
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- // writer.write("\t}\n\tm_pCall->unInitialize();\n");
- writer.write ("\treturn pReturn;\n");
- }
- else
- {
- //writer.write("\t\t\tpReturn = ("+outparamType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+outparamType+", (void*) Axis_Create_"+outparamType+", (void*) Axis_Delete_"+outparamType+",\""+returntype.getElementName().getLocalPart()+"\", 0);\n\t\t}\n");
- //Samisa 22/08/2004
- if (outparamType.lastIndexOf ("*") > 0)
- {
- String outparamTypeBase =
- outparamType.substring (0,
- outparamType.
- lastIndexOf
- ("*"));
- writer.write ("\t\t\tpReturn = (" +
- outparamType +
- ")m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
- + outparamTypeBase +
- ", (void*) Axis_Create_" +
- outparamTypeBase +
- ", (void*) Axis_Delete_" +
- outparamTypeBase + ",\"" +
- returntype.
- getElementNameAsString () +
- "\", 0);\n\t\t}\n");
- }
- else
- writer.write ("\t\t\tpReturn = ("
- + outparamType
- +
- "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
- + outparamType +
- ", (void*) Axis_Create_" +
- outparamType +
- ", (void*) Axis_Delete_" +
- outparamType + ",\"" +
- returntype.
- getElementNameAsString () +
- "\", 0);\n\t\t}\n");
- //Samisa
- writer.write ("\t}\n");
- writer.write ("\tm_pCall->unInitialize();\n");
- // writer.write("\t}\n\tm_pCall->unInitialize();\n");
- writer.write ("\treturn pReturn;\n");
- }
- }
- }
- }
- }
- //added by nithya
-
- writer.write ("\t}\n");
- writer.write ("\tcatch(AxisException& e)\n\t{\n");
- writer.write ("\t\tint iExceptionCode = e.getExceptionCode();\n\n");
- writer.
- write
- ("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n");
- writer.write ("\t\t{\n");
- writer.write ("\t\t\tm_pCall->unInitialize();\n"); // AXISCPP-477
- writer.write ("\t\t\tthrow;\n");
- writer.write ("\t\t}\n\n");
- writer.write ("\t\tISoapFault* pSoapFault = (ISoapFault*)\n");
- writer.write ("\t\t\tm_pCall->checkFault(\"Fault\",\""
- + wscontext.getWrapInfo ().getTargetEndpointURI ()
- + "\" );\n\n");
- writer.write ("\t\tif(pSoapFault)\n");
- writer.write ("\t\t{\n");
-
- //to get fault info
- Iterator paramsFault = minfo.getFaultType ().iterator ();
- String faultInfoName = null;
- String faultType = null;
- String langName = null;
- String paramName = null;
- boolean flag = false;
- int j = 0;
- if (!paramsFault.hasNext ())
- {
- writer.write ("\t\t\tconst char *detail = pSoapFault->getSimpleFaultDetail();\n");
- writer.write ("\t\t\tbool deleteDetail=false;\n\n");
- writer.write ("\t\t\tif (NULL==detail || 0==strlen(detail))\n");
- writer.write ("\t\t\t{\n");
- writer.write ("\t\t\t\tdetail=m_pCall->getFaultAsXMLString();\n");
- writer.write ("\t\t\t\tif (NULL==detail)\n");
- writer.write ("\t\t\t\t{\n");
- writer.write ("\t\t\t\t\tdetail=\"\";\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\tdeleteDetail=true;\n");
- writer.write ("\t\t\t\t}\n");
- writer.write ("\t\t\t}\n\n");
- writer.write ("\t\t\tOtherFaultException ofe(pSoapFault->getFaultcode(),\n");
- writer.write ("\t\t\t\tpSoapFault->getFaultstring(), pSoapFault->getFaultactor(),\n");
- writer.write ("\t\t\t\tdetail, iExceptionCode);\n\n");
- writer.write ("\t\t\tif (deleteDetail && NULL!=detail)\n");
- writer.write ("\t\t\t{\n");
- writer.write ("\t\t\t\tAxis::AxisDelete( (void *) const_cast<char*>(detail), XSD_STRING);\n");
- writer.write ("\t\t\t}\n\n");
- writer.write ("\t\t\tm_pCall->unInitialize();\n");
- writer.write ("\t\t\tdelete pSoapFault;\n");
- writer.write ("\t\t\tthrow ofe;\n");
- }
- else
- {
- flag = true;
- writer.write ("\t\t\tpcCmplxFaultName = pSoapFault->getCmplxFaultObjectName();\n");
- }
- while (paramsFault.hasNext ())
- {
- j = j + 1;
- 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;
- }
- }
- }
- // FJP - D0004 <
-
- ArrayList paramInfo = info.getParams ();
- for (int i = 0; i < paramInfo.size (); i++)
- {
- ParameterInfo par = (ParameterInfo) paramInfo.get (i);
- paramName = par.getParamName ();
- langName = par.getLangName ();
- faultType = WrapperUtils.
- getClassNameFromParamInfoConsideringArrays (par,
- wscontext);
- if (j > 1)
- {
- writer.write ("\t\t\telse if");
- writeExceptions (faultType,
- faultInfoName, paramName, langName);
- }
- else
- {
- writer.write ("\t\t\tif");
- writeExceptions (faultType,
- faultInfoName, paramName, langName);
- }
- }
- }
- if (flag == true)
- {
- writer.write ("\t\t\telse\n");
- writer.write ("\t\t\t{\n");
- writer.
- write
- ("\t\t\t\tconst char *detail = pSoapFault->getSimpleFaultDetail();\n");
- writer.write ("\t\t\t\tbool deleteDetail=false;\n\n");
- writer.write ("\t\t\t\tif (NULL==detail || 0==strlen(detail))\n");
- writer.write ("\t\t\t\t{\n");
- writer.write ("\t\t\t\t\tdetail=m_pCall->getFaultAsXMLString();\n\n");
- writer.write ("\t\t\t\t\tif (NULL==detail)\n");
- writer.write ("\t\t\t\t\t{\n");
- writer.write ("\t\t\t\t\t\tdetail=\"\";\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\tdeleteDetail=true;\n");
- writer.write ("\t\t\t\t\t}\n");
- writer.write ("\t\t\t\t}\n\n");
- writer.write ("\t\t\t\tOtherFaultException ofe(pSoapFault->getFaultcode(),\n");
- writer.write ("\t\t\t\t\tpSoapFault->getFaultstring(), pSoapFault->getFaultactor(),\n");
- writer.write ("\t\t\t\t\tdetail, iExceptionCode);\n\n");
- writer.write ("\t\t\t\tif (deleteDetail && NULL!=detail)\n");
- writer.write ("\t\t\t\t{\n");
- writer.write ("\t\t\t\t\tAxis::AxisDelete( (void *) const_cast<char*>(detail), XSD_STRING);\n");
- writer.write ("\t\t\t\t}\n\n");
- writer.write ("\t\t\t\tm_pCall->unInitialize();\n");
- writer.write ("\t\t\t\tdelete pSoapFault;\n");
- writer.write ("\t\t\t\tthrow ofe;\n");
- writer.write ("\t\t\t}\n");
- }
- writer.write ("\t\t}\n");
- writer.write ("\t\telse\n");
- writer.write ("\t\t{\n");
- writer.write ("\t\t\tm_pCall->unInitialize();\n"); // AXISCPP-477
- writer.write ("\t\t\tdelete pSoapFault;\n");
- writer.write ("\t\t\tthrow;\n");
- writer.write ("\t\t}\n");
- writer.write ("\t}\n");
- writer.write ("}\n");
+ }
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ // writer.write("\t}\n\tm_pCall->unInitialize();\n");
+ writer.write ("\treturn Ret;\n");
+ }
+ else
+ {
+
+ if (returntype.isAnyType ())
+ {
+ //for anyTtype
+ writer.write ("\t\t\tpReturn = ("
+ + outparamType
+ +
+ "*)m_pCall->getAnyObject();\n\t\t}\n");
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ // writer.write("\t}\n\tm_pCall->unInitialize();\n");
+ writer.write ("\treturn pReturn;\n");
+ }
+ else
+ {
+ //writer.write("\t\t\tpReturn = ("+outparamType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+outparamType+", (void*) Axis_Create_"+outparamType+", (void*) Axis_Delete_"+outparamType+",\""+returntype.getElementName().getLocalPart()+"\", 0);\n\t\t}\n");
+ //Samisa 22/08/2004
+ if (outparamType.lastIndexOf ("*") > 0)
+ {
+ String outparamTypeBase =
+ outparamType.substring (0,
+ outparamType.
+ lastIndexOf
+ ("*"));
+ writer.write ("\t\t\tpReturn = (" +
+ outparamType +
+ ")m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
+ + outparamTypeBase +
+ ", (void*) Axis_Create_" +
+ outparamTypeBase +
+ ", (void*) Axis_Delete_" +
+ outparamTypeBase + ",\"" +
+ returntype.
+ getElementNameAsString () +
+ "\", 0);\n\t\t}\n");
+ }
+ else
+ writer.write ("\t\t\tpReturn = ("
+ + outparamType
+ +
+ "*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"
+ + outparamType +
+ ", (void*) Axis_Create_" +
+ outparamType +
+ ", (void*) Axis_Delete_" +
+ outparamType + ",\"" +
+ returntype.
+ getElementNameAsString () +
+ "\", 0);\n\t\t}\n");
+ //Samisa
+ writer.write ("\t}\n");
+ writer.write ("\tm_pCall->unInitialize();\n");
+ // writer.write("\t}\n\tm_pCall->unInitialize();\n");
+ writer.write ("\treturn pReturn;\n");
+ }
+ }
+ }
+ }
+ }
+ //added by nithya
+
+ writer.write ("\t}\n");
+ writer.write ("\tcatch(AxisException& e)\n\t{\n");
+ writer.write ("\t\tint iExceptionCode = e.getExceptionCode();\n\n");
+ writer.
+ write
+ ("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n");
+ writer.write ("\t\t{\n");
+ writer.write ("\t\t\tm_pCall->unInitialize();\n"); // AXISCPP-477
+ writer.write ("\t\t\tthrow;\n");
+ writer.write ("\t\t}\n\n");
+ writer.write ("\t\tISoapFault* pSoapFault = (ISoapFault*)\n");
+ writer.write ("\t\t\tm_pCall->checkFault(\"Fault\",\""
+ + wscontext.getWrapInfo ().getTargetEndpointURI ()
+ + "\" );\n\n");
+ writer.write ("\t\tif(pSoapFault)\n");
+ writer.write ("\t\t{\n");
+
+ //to get fault info
+ Iterator paramsFault = minfo.getFaultType ().iterator ();
+ String faultInfoName = null;
+ String faultType = null;
+ String langName = null;
+ String paramName = null;
+ boolean flag = false;
+ int j = 0;
+ if (!paramsFault.hasNext ())
+ {
+ writer.write ("\t\t\tconst char *detail = pSoapFault->getSimpleFaultDetail();\n");
+ writer.write ("\t\t\tbool deleteDetail=false;\n\n");
+ writer.write ("\t\t\tif (NULL==detail || 0==strlen(detail))\n");
+ writer.write ("\t\t\t{\n");
+ writer.write ("\t\t\t\tdetail=m_pCall->getFaultAsXMLString();\n");
+ writer.write ("\t\t\t\tif (NULL==detail)\n");
+ writer.write ("\t\t\t\t{\n");
+ writer.write ("\t\t\t\t\tdetail=\"\";\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\tdeleteDetail=true;\n");
+ writer.write ("\t\t\t\t}\n");
+ writer.write ("\t\t\t}\n\n");
+ writer.write ("\t\t\tOtherFaultException ofe(pSoapFault->getFaultcode(),\n");
+ writer.write ("\t\t\t\tpSoapFault->getFaultstring(), pSoapFault->getFaultactor(),\n");
+ writer.write ("\t\t\t\tdetail, iExceptionCode);\n\n");
+ writer.write ("\t\t\tif (deleteDetail && NULL!=detail)\n");
+ writer.write ("\t\t\t{\n");
[... 328 lines stripped ...]