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 da...@apache.org on 2004/06/25 10:57:17 UTC
cvs commit: ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp ClientStubWriter.java ClientStubHeaderWriter.java
damitha 2004/06/25 01:57:17
Modified: c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp
ClientStubWriter.java ClientStubHeaderWriter.java
Log:
Revision Changes Path
1.48 +95 -101 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java
Index: ClientStubWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubWriter.java,v
retrieving revision 1.47
retrieving revision 1.48
diff -u -r1.47 -r1.48
--- ClientStubWriter.java 15 Jun 2004 13:28:50 -0000 1.47
+++ ClientStubWriter.java 25 Jun 2004 08:57:17 -0000 1.48
@@ -215,16 +215,12 @@
}
String channelSecurityType = (WrapperConstants.CHANNEL_SECURITY_SSL.equals(wscontext.getWrapInfo().getChannelSecurity()))?
"SSL_CHANNEL" : "NORMAL_CHANNEL";
-// begin added NIthya
- // writer.write("int Ret;\n");
- writer.write("\tchar* cFaultcode;\n");//damitha added \t
- writer.write("\tchar* cFaultstring;\n");//damitha \t
- writer.write("\tchar* cFaultactor;\n");//damitha \t
- writer.write("\tchar* cFaultdetail;\n");//damitha \t
- // end of Nithya
- // begin added by nithya
- writer.write("\ttry\n\t{");//damitha \n
- //ended by nithya
+
+ writer.write("\tchar* cFaultcode;\n");
+ writer.write("\tchar* cFaultstring;\n");
+ writer.write("\tchar* cFaultactor;\n");
+ writer.write("\tchar* cFaultdetail;\n");
+ writer.write("\ttry\n\t{");
writer.write("\n\t\tif (AXIS_SUCCESS != m_pCall->initialize(CPP_RPC_PROVIDER, "+channelSecurityType +")) \n\t\t\treturn ");//damitha
if (returntype != null){
writer.write((returntypeisarray?"RetArray":returntypeissimple?"Ret":"pReturn")+";\n");
@@ -232,7 +228,6 @@
else{
writer.write(";\n");
}
-
writer.write("\t\tm_pCall->setTransportProperty(SOAPACTION_HEADER , \""+minfo.getSoapAction()+"\");\n");
writer.write("\t\tm_pCall->setSOAPVersion(SOAP_VER_1_1);\n"); //TODO check which version is it really.
writer.write("\t\tm_pCall->setOperation(\""+minfo.getMethodname()+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\");\n");
@@ -273,8 +268,8 @@
}
writer.write(");\n");
}
- writer.write("\t\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t\t{\n");//damitha
- writer.write("\t\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""+minfo.getOutputMessage().getLocalPart()+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\"))\n\t\t\t{\n");//damitha
+ writer.write("\t\tif (AXIS_SUCCESS == m_pCall->invoke())\n\t\t{\n");
+ writer.write("\t\t\tif(AXIS_SUCCESS == m_pCall->checkMessage(\""+minfo.getOutputMessage().getLocalPart()+"\", \""+wscontext.getWrapInfo().getTargetNameSpaceOfWSDL()+"\"))\n\t\t\t{\n");
if ( isAllTreatedAsOutParams) {
String currentParamName;
@@ -299,140 +294,139 @@
String containedType = null;
if (CUtils.isSimpleType(qname)){
containedType = CUtils.getclass4qname(qname);
- writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"&)m_pCall->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+", \""+currentType.getParamName()+"\", 0);\n");//damitha
+ writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"&)m_pCall->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+", \""+currentType.getParamName()+"\", 0);\n");
}
else{
containedType = qname.getLocalPart();
- writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"+containedType);//damitha
- writer.write("\t\t\t\t, (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+currentType.getParamName()+"\", Axis_URI_"+containedType+");\n");//damitha
+ writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"+containedType);
+ writer.write("\t\t\t\t, (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+currentType.getParamName()+"\", Axis_URI_"+containedType+");\n");
}
}
else if(typeissimple){
- writer.write("\t\t\t\t" + currentParamName + " = m_pCall->"+ CUtils.getParameterGetValueMethodName(currentParaType, false)+"(\""+currentType.getParamName()+"\", 0);\n");//damitha
+ writer.write("\t\t\t\t" + currentParamName + " = m_pCall->"+ CUtils.getParameterGetValueMethodName(currentParaType, false)+"(\""+currentType.getParamName()+"\", 0);\n");
}
else{
- writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+currentParaType+", (void*) Axis_Create_"+currentParaType+", (void*) Axis_Delete_"+currentParaType+",\""+currentType.getParamName()+"\", 0);\n"); //damitha
+ writer.write("\t\t\t\t" + currentParamName + " = ("+currentParaType+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+currentParaType+", (void*) Axis_Create_"+currentParaType+", (void*) Axis_Delete_"+currentParaType+",\""+currentType.getParamName()+"\", 0);\n");
}
}
- writer.write("\t\t\t}\n");//damitha
- writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");//damitha
+ writer.write("\t\t\t}\n");
+ writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
}
else if (returntype == null){
- writer.write("\t\t\t/*not successful*/\n\t\t}\n");//damitha
- writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");//damitha
+ writer.write("\t\t\t/*not successful*/\n\t\t}\n");
+ writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
}
else if (returntypeisarray){
QName qname = WrapperUtils.getArrayType(retType).getName();
String containedType = null;
if (CUtils.isSimpleType(qname)){
containedType = CUtils.getclass4qname(qname);
- writer.write("\t\t\t\tRetArray = ("+outparamTypeName+"&)m_pCall->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+", \""+returntype.getParamName()+"\", 0);\n\t\t\t}\n");//damitha
+ writer.write("\t\t\t\tRetArray = ("+outparamTypeName+"&)m_pCall->getBasicArray("+CUtils.getXSDTypeForBasicType(containedType)+", \""+returntype.getParamName()+"\", 0);\n\t\t\t}\n");
}
else{
containedType = qname.getLocalPart();
writer.write("\t\t\t\tRetArray = ("+outparamTypeName+"&)m_pCall->getCmplxArray((void*) Axis_DeSerialize_"+containedType);//damitha
- writer.write(", (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returntype.getParamName()+"\", Axis_URI_"+containedType+");\n\t\t\t}\n");//damitha
+ writer.write(", (void*) Axis_Create_"+containedType+", (void*) Axis_Delete_"+containedType+", (void*) Axis_GetSize_"+containedType+", \""+returntype.getParamName()+"\", Axis_URI_"+containedType+");\n\t\t\t}\n");
}
- writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");//damitha
- writer.write("\t\treturn RetArray;\n");//damitha
+ writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
+ writer.write("\t\treturn RetArray;\n");
}
else if(returntypeissimple){
- writer.write("\t\t\t\tRet = m_pCall->"+ CUtils.getParameterGetValueMethodName(outparamTypeName, false)+"(\""+returntype.getParamName()+"\", 0);\n\t\t\t}\n");//damitha
- writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");//damitha
- writer.write("\t\treturn Ret;\n");//damitha
+ writer.write("\t\t\t\tRet = m_pCall->"+ CUtils.getParameterGetValueMethodName(outparamTypeName, false)+"(\""+returntype.getParamName()+"\", 0);\n\t\t\t}\n");
+ writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
+ writer.write("\t\treturn Ret;\n");
}
else{
outparamTypeName = returntype.getLangName();//need to have complex type name without *
- writer.write("\t\t\t\tpReturn = ("+outparamTypeName+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+outparamTypeName+", (void*) Axis_Create_"+outparamTypeName+", (void*) Axis_Delete_"+outparamTypeName+",\""+returntype.getParamName()+"\", 0);\n\t\t}\n");//damitha
- writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");//damitha
- writer.write("\t\treturn pReturn;\n");//damitha
+ writer.write("\t\t\t\tpReturn = ("+outparamTypeName+"*)m_pCall->getCmplxObject((void*) Axis_DeSerialize_"+outparamTypeName+", (void*) Axis_Create_"+outparamTypeName+", (void*) Axis_Delete_"+outparamTypeName+",\""+returntype.getParamName()+"\", 0);\n\t\t}\n");
+ writer.write("\t\t}\n\t\tm_pCall->unInitialize();\n");
+ writer.write("\t\treturn pReturn;\n");
}
- //added by nithya
-
- writer.write("\t}\n");//damitha
- writer.write("\tcatch(AxisException& e)\n\t{\n");//damitha
+ //added by nithya
+ writer.write("\t}\n");
+ writer.write("\tcatch(AxisException& e)\n\t{\n");
writer.write("\t\tint iExceptionCode = e.getExceptionCode();\n");
writer.write("\t\tif(AXISC_NODE_VALUE_MISMATCH_EXCEPTION != iExceptionCode)\n");
- writer.write("\t\t{\n");
- writer.write("\t\t\tthrow;\n");
- writer.write("\t\t}\n");
- writer.write("\t\telse if (AXIS_SUCCESS == m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" ))");//damitha
+ writer.write("\t\t{\n");
+ writer.write("\t\t\tthrow;\n");
+ writer.write("\t\t}\n");
+ writer.write("\t\telse if (AXIS_SUCCESS == m_pCall->checkFault(\"Fault\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\" ))");
writer.write("//Exception handling code goes here\n");
- writer.write("\t\t{\n");//damitha
- writer.write("\t\t\tcFaultcode = m_pCall->getElementAsString(\"faultcode\", 0);\n");//damitha
- writer.write("\t\t\tcFaultstring = m_pCall->getElementAsString(\"faultstring\", 0);\n");//damitha
- writer.write("\t\t\tcFaultactor = m_pCall->getElementAsString(\"faultactor\", 0);\n");//damitha
-
- //writer.write("\t\t\tif(0 != strcmp(\"service_exception\", cFaultstring))\n");//damitha
- //writer.write("\t\t\t{\n");//damitha
- //writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n");//damitha
- //writer.write("\t\t\t\t throw AxisException(cFaultdetail);\n");//damitha
- //writer.write("\t\t\t}\n");//damitha
- //writer.write("\t\t\telse\n");//damitha
- //writer.write("\t\t\t{\n");//damitha
- //writer.write("\t\t\t\tif (AXIS_SUCCESS == m_pCall->checkFault(\"faultdetail\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\"))\n");//damitha
-
-// to get fault info
+ writer.write("\t\t{\n");
+ writer.write("\t\t\tcFaultcode = m_pCall->getElementAsString(\"faultcode\", 0);\n");
+ writer.write("\t\t\tcFaultstring = m_pCall->getElementAsString(\"faultstring\", 0);\n");
+ writer.write("\t\t\tcFaultactor = m_pCall->getElementAsString(\"faultactor\", 0);\n");
+ //to get fault info
Iterator paramsFault = minfo.getFaultType().iterator();
String faultInfoName =null;
String faultType =null;
String langName =null;
String paramName =null;
- if (!paramsFault.hasNext()){
- writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n");//damitha
- writer.write("\t\t\t\t throw AxisException(cFaultdetail);\n");//damitha
+ boolean flag =false;
+ int j =0;
+ if (!paramsFault.hasNext())
+ {
+ writer.write("\t\t\tcFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n");
+ writer.write("\t\t\tthrow AxisGenException(cFaultdetail);\n");
}
+ else
+ {
+ flag =true;
+ }
while (paramsFault.hasNext()){
+ j =j+1;
FaultInfo info = (FaultInfo)paramsFault.next();
faultInfoName =info.getFaultInfo();
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);
- writeExceptions(faultType,faultInfoName,paramName,langName);
- }
- writer.write("\t\t\telse\n\t\t\t{\n");//damitha
- writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n");//damitha
- writer.write("\t\t\t\t throw AxisException(cFaultdetail);\n");//damitha
- writer.write("\t\t\t}\n");//damitha
- }
-
-
- writer.write("\t\t}\n");//damitha
- writer.write("\t\telse throw;\n");//damitha
- writer.write("\t}\n");//damitha
- //writer.write("m_pCall->unInitialize();\n");//damitha
- //writer.write("return Ret;\n");//damitha
-
- //end of nithya add
+ 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\t\t\t{\n");
+ writer.write("\t\t\t\t cFaultdetail = m_pCall->getElementAsString(\"faultdetail\", 0);\n");
+ writer.write("\t\t\t\t throw AxisGenException(cFaultdetail);\n");
+ writer.write("\t\t\t}\n");
+ }
- //write end of method
+ writer.write("\t\t}\n");
+ writer.write("\t\telse throw;\n");
+ writer.write("\t}\n");
writer.write("}\n");
- }
-
- /* written by NIthya to get the expections */
+ }
private void writeExceptions(String faulttype,String faultInfoName,String paramName,String langName) throws WrapperFault{
- try{
-
- //writer.write("else\n");//damitha
- writer.write("\t\t\tif(0 == strcmp(\""+langName+"\", cFaultstring))\n");//damitha
- writer.write("\t\t\t{\n");//damitha
- writer.write("\t\t\t\tif (AXIS_SUCCESS == m_pCall->checkFault(\"faultdetail\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\"))\n");//damitha
- writer.write("\t\t\t\t{\n");//damitha added
- writer.write("\t\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n");//damitha
- writer.write("\t\t\t\t\tpFaultDetail = ("+faulttype+")m_pCall->\n");//damitha
- writer.write("\t\t\t\t\t\tgetCmplxObject((void*) Axis_DeSerialize_"+langName+",\n");//damitha
- writer.write("\t\t\t\t\t\t(void*) Axis_Create_"+langName+",\n");//damitha
- writer.write("\t\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+paramName+"\", 0);\n");//damitha
- //writer.write("char* temp = pFaultDetail->varString;");//damitha
- writer.write("\t\t\t\t\t/*User code to handle the struct can be inserted here*/\n");//damitha
- writer.write("\t\t\t\t\tm_pCall->unInitialize();\n");//damitha
- writer.write("\t\t\t\t\tthrow Axis"+faultInfoName+"Exception(pFaultDetail);\n");//damitha
- writer.write("\t\t\t\t}\n");//damitha
- writer.write("\t\t\t}\n");//damitha
+ try{
+ writer.write("(0 == strcmp(\""+langName+"\", cFaultstring))\n");
+ // writer.write("\t\t\tif(0 == strcmp(\""+langName+"\", cFaultstring))\n");
+ writer.write("\t\t\t{\n");
+ writer.write("\t\t\t\tif (AXIS_SUCCESS == m_pCall->checkFault(\"faultdetail\",\""+wscontext.getWrapInfo().getTargetEndpointURI()+"\"))\n");
+ writer.write("\t\t\t\t{\n");
+ writer.write("\t\t\t\t\t"+faulttype+" pFaultDetail = NULL;\n");
+ writer.write("\t\t\t\t\tpFaultDetail = ("+faulttype+")m_pCall->\n");
+ writer.write("\t\t\t\t\t\tgetCmplxObject((void*) Axis_DeSerialize_"+langName+",\n");
+ writer.write("\t\t\t\t\t\t(void*) Axis_Create_"+langName+",\n");
+ writer.write("\t\t\t\t\t\t(void*) Axis_Delete_"+langName+",\""+paramName+"\", 0);\n");
+ writer.write("\t\t\t\t\t/*User code to handle the struct can be inserted here*/\n");
+ writer.write("\t\t\t\t\tm_pCall->unInitialize();\n");
+ writer.write("\t\t\t\t\tthrow Axis"+faultInfoName+"Exception(pFaultDetail);\n");
+ writer.write("\t\t\t\t}\n");
+ writer.write("\t\t\t}\n");
}
catch (IOException e) {
throw new WrapperFault(e);
1.22 +1 -0 ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java
Index: ClientStubHeaderWriter.java
===================================================================
RCS file: /home/cvs/ws-axis/c/src/wsdl/org/apache/axis/wsdl/wsdl2ws/cpp/ClientStubHeaderWriter.java,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -r1.21 -r1.22
--- ClientStubHeaderWriter.java 21 Jun 2004 13:14:02 -0000 1.21
+++ ClientStubHeaderWriter.java 25 Jun 2004 08:57:17 -0000 1.22
@@ -161,6 +161,7 @@
protected void writePreprocssorStatements() throws WrapperFault {
try{
writer.write("#include <axis/client/Stub.h>\n");
+ writer.write("#include <axis/AxisGenException.h>\n");
writer.write("/*include Exception header files here*/\n");//damitha
Type atype;
Iterator types = this.wscontext.getTypemap().getTypes().iterator();