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 di...@apache.org on 2005/02/22 15:14:49 UTC
cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp BeanParamWriter.java
dicka 2005/02/22 06:14:49
Modified: c/include/axis IWrapperSoapSerializer.hpp
c/src/cbindings IWrapperSoapSerializerC.cpp
c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
BeanParamWriter.java
Log:
Add ability for generated stubs to determine if namespace is being newly declared.
PR: AXISCPP-464
Submitted by: Adrian Dick
Revision Changes Path
1.7 +16 -1 ws-axis/c/include/axis/IWrapperSoapSerializer.hpp
Index: IWrapperSoapSerializer.hpp
===================================================================
RCS file: /home/cvs/ws-axis/c/include/axis/IWrapperSoapSerializer.hpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- IWrapperSoapSerializer.hpp 28 Jan 2005 16:16:54 -0000 1.6
+++ IWrapperSoapSerializer.hpp 22 Feb 2005 14:14:48 -0000 1.7
@@ -58,9 +58,24 @@
virtual int AXISCALL createSoapFault(const AxisChar* sLocalName,
const AxisChar* sURI, const AxisChar* sFaultCode,
const AxisChar* sFaultString)=0;
-
+ /**
+ * Returns the corrosponding namespace prefix.
+ * @param pNamespace The namespace.
+ * @return The corrosponding prefix.
+ */
virtual const AxisChar* AXISCALL getNamespacePrefix
(const AxisChar* pNamespace)=0;
+ /**
+ * Returns the corrosponding namespace prefix. This method is
+ * called when the caller also wants to know whether this is a new
+ * namespace or not as appose to its overloaded other member.
+ * @param pNamespace The namespace.
+ * @param blnIsNewPrefix The boolean which behaves as
+ * an out parameter to indicate whether this is a new namespace or not.
+ * @return The corrosponding prefix.
+ */
+ virtual const AxisChar* AXISCALL getNamespacePrefix(const AxisChar* pNamespace,
+ bool& blnIsNewPrefix)=0;
virtual void AXISCALL removeNamespacePrefix(const AxisChar* pNamespace)=0;
1.6 +14 -3 ws-axis/c/src/cbindings/IWrapperSoapSerializerC.cpp
Index: IWrapperSoapSerializerC.cpp
===================================================================
RCS file: /home/cvs/ws-axis/c/src/cbindings/IWrapperSoapSerializerC.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- IWrapperSoapSerializerC.cpp 28 Jan 2005 16:16:54 -0000 1.5
+++ IWrapperSoapSerializerC.cpp 22 Feb 2005 14:14:49 -0000 1.6
@@ -45,10 +45,21 @@
return sz->createSoapFault(sLocalName,sURI,sFaultCode,sFaultString);
}
+//AXISC_STORAGE_CLASS_INFO const AxiscChar * axiscGetNamespacePrefixIWrapperSoapSerializer(
+// AXISCHANDLE wrapperSoapSerializer, const AxiscChar * pNamespace) {
+// IWrapperSoapSerializer *sz = (IWrapperSoapSerializer*)wrapperSoapSerializer;
+// return sz->getNamespacePrefix(pNamespace);
+//}
+
AXISC_STORAGE_CLASS_INFO const AxiscChar * axiscGetNamespacePrefixIWrapperSoapSerializer(
- AXISCHANDLE wrapperSoapSerializer, const AxiscChar * pNamespace) {
- IWrapperSoapSerializer *sz = (IWrapperSoapSerializer*)wrapperSoapSerializer;
- return sz->getNamespacePrefix(pNamespace);
+ AXISCHANDLE wrapperSoapSerializer, const AxiscChar * pNamespace,
+ AxiscBool * blnIsNewPrefix) {
+ IWrapperSoapSerializer *sz = (IWrapperSoapSerializer*)wrapperSoapSerializer;
+
+ bool isNewPrefix = false;
+ const AxiscChar * returnValue = sz->getNamespacePrefix(pNamespace, isNewPrefix);
+ *(blnIsNewPrefix) = (AxiscBool) isNewPrefix;
+ return returnValue;
}
AXISC_STORAGE_CLASS_INFO void axiscRemoveNamespacePrefix(AXISCHANDLE wrapperSoapSerializer, const AxiscChar * pNamespace) {
1.34 +20 -6 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java
Index: BeanParamWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/BeanParamWriter.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- BeanParamWriter.java 21 Feb 2005 06:19:21 -0000 1.33
+++ BeanParamWriter.java 22 Feb 2005 14:14:49 -0000 1.34
@@ -181,19 +181,33 @@
writer.write("\t}\n");
writer.write("\telse\n");
writer.write("\t{\n");
+ writer.write("\t\tbool blnIsNewPrefix = false;\n");
+ writer.write("\t\tconst AxisChar* sPrefix = pSZ->getNamespacePrefix(Axis_URI_"
+ + classname
+ + ", blnIsNewPrefix);\n");
+ writer.write("\t\tif (!blnIsNewPrefix)\n");
+ writer.write("\t\t{\n");
writer.write(
- "\t\tconst AxisChar* sPrefix = pSZ->getNamespacePrefix(Axis_URI_"
- + classname
- + ");\n");
+ "\t\t\tpSZ->serialize(\"<\", Axis_TypeName_"
+ + classname
+ + ", \" xsi:type=\\\"\", sPrefix, \":\",\n");
+ writer.write(
+ "\t\t\t\tAxis_TypeName_"
+ + classname
+ + ", \"\\\">\", NULL);\n");
+ writer.write("\t\t}\n");
+ writer.write("\t\telse\n");
+ writer.write("\t\t{\n");
writer.write(
- "\t\tpSZ->serialize(\"<\", Axis_TypeName_"
+ "\t\t\tpSZ->serialize(\"<\", Axis_TypeName_"
+ classname
+ ", \" xsi:type=\\\"\", sPrefix, \":\",\n");
writer.write(
- "\t\t\tAxis_TypeName_"
+ "\t\t\t\tAxis_TypeName_"
+ classname
+ ", \"\\\" xmlns:\", sPrefix, \"=\\\"\",\n");
- writer.write("\t\t\tAxis_URI_" + classname + ", \"\\\">\", NULL);\n");
+ writer.write("\t\t\t\tAxis_URI_" + classname + ", \"\\\">\", NULL);\n");
+ writer.write("\t\t}\n");
writer.write("\t}\n\n");
String arrayType;