// Writes the oneway attribute and delegates to the base implementation internal override void PrintCSC(TextWriter textWriter, String indentation, String namePrefix, String curNS, MethodPrintEnum methodPrintEnum, bool bURTType, String bodyPrefix, StringBuilder sb) { Util.Log("OnewayMethod.PrintCSC name "+_messageElementName+" namePrefix "+namePrefix+" curNS "+curNS+" methodPrintEnum "+((Enum)methodPrintEnum).ToString()); if (Name == "Finalize") return; bool bSoapAction = false; if (SoapAction != null) bSoapAction = true; if (!(bSoapAction || !bURTType)) { textWriter.Write(indentation); textWriter.WriteLine("[OneWay]"); } else { sb.Length = 0; sb.Append(indentation); sb.Append("[OneWay, SoapMethod("); if (bSoapAction) { sb.Append("SoapAction="); sb.Append(WsdlParser.IsValidUrl(SoapAction)); } if (!bURTType) { if (bSoapAction) sb.Append(","); sb.Append("XmlNamespace="); sb.Append(WsdlParser.IsValidUrl(_wsdlMethodInfo.inputMethodNameNs)); //sb.Append(_messageElementNS); } sb.Append(")]"); textWriter.WriteLine(sb); } Util.Log("OnewayMethod.PrintCSC Invoke base PrintCSC"); base.PrintCSC(textWriter, indentation, namePrefix, curNS, methodPrintEnum, bURTType, bodyPrefix, sb); return; }
/* internal abstract void PrintCSC(TextWriter textWriter, String indentation, String namePrefix, String curNS, MethodPrintEnum methodPrintEnum, bool bURTType, String bodyPrefix, StringBuilder sb); */ internal virtual void PrintCSC(TextWriter textWriter, String indentation, String namePrefix, String curNS, MethodPrintEnum methodPrintEnum, bool bURTType, String bodyPrefix, StringBuilder sb) { Util.Log("URTMethod.PrintCSC name "+_methodName+" namePrefix "+namePrefix+" curNS "+curNS+" MethodPrintEnum "+((Enum)methodPrintEnum).ToString()); // Check for class methods sb.Length = 0; sb.Append(indentation); if (Name == "Finalize") return; if (FlagTest(methodPrintEnum, MethodPrintEnum.InterfaceInClass)) sb.Append("public "); else if (MethodFlagsTest(_methodFlags, MethodFlags.Public)) sb.Append("public "); else if (MethodFlagsTest(_methodFlags, MethodFlags.Protected)) sb.Append("protected "); else if (MethodFlagsTest(_methodFlags, MethodFlags.Internal)) sb.Append("internal "); if (MethodFlagsTest(_methodFlags, MethodFlags.Override)) sb.Append("override "); else if (MethodFlagsTest(_methodFlags, MethodFlags.Virtual)) sb.Append("virtual "); if (MethodFlagsTest(_methodFlags, MethodFlags.New)) sb.Append("new "); sb.Append(WsdlParser.IsValidCSAttr(GetTypeString(curNS, true))); if (FlagTest(methodPrintEnum, MethodPrintEnum.InterfaceInClass)) sb.Append(" "); else sb.Append(WsdlParser.IsValidCSAttr(namePrefix)); if (_wsdlMethodInfo.bProperty) sb.Append(WsdlParser.IsValidCS(_wsdlMethodInfo.propertyName)); else { sb.Append(WsdlParser.IsValidCS(_methodName)); sb.Append('('); if (_params.Count > 0) { Util.Log("URTMethod.PrintCSC Invoke _params[0] 1 PrintCSC"); ((URTParam) _params[0]).PrintCSC(sb, curNS); for (int i=1;i<_params.Count;i++) { sb.Append(", "); Util.Log("URTMethod.PrintCSC Invoke _params 2 PrintCSC "+i); ((URTParam) _params[i]).PrintCSC(sb, curNS); } } sb.Append(')'); } if (_wsdlMethodInfo.bProperty && FlagTest(methodPrintEnum, MethodPrintEnum.InterfaceMethods)) { sb.Append("{"); if (_wsdlMethodInfo.bGet) sb.Append(" get; "); if (_wsdlMethodInfo.bSet) sb.Append(" set; "); sb.Append("}"); } else if (!FlagTest(methodPrintEnum, MethodPrintEnum.PrintBody)) sb.Append(';'); textWriter.WriteLine(sb); if (_wsdlMethodInfo.bProperty && FlagTest(methodPrintEnum, MethodPrintEnum.PrintBody)) PrintPropertyBody(textWriter,indentation, sb, bodyPrefix); else if (FlagTest(methodPrintEnum, MethodPrintEnum.PrintBody)) { sb.Length = 0; sb.Append(indentation); sb.Append('{'); textWriter.WriteLine(sb); String newIndentation = indentation + " "; if (bodyPrefix == null) { for (int i=0;i<_params.Count;i++) { URTParam param = (URTParam) _params[i]; if (param.ParamType == URTParamType.OUT) { sb.Length = 0; sb.Append(newIndentation); sb.Append(WsdlParser.IsValidCS(param.Name)); sb.Append(" = "); sb.Append(ValueString(param.GetTypeString(curNS, true))); sb.Append(';'); textWriter.WriteLine(sb); } } Util.Log("URTMethod.PrintCSC return print"); sb.Length = 0; sb.Append(newIndentation); sb.Append("return"); String returnString = ValueString(GetTypeString(curNS, true)); if (returnString != null) { sb.Append('('); sb.Append(returnString); sb.Append(')'); } sb.Append(';'); } else { sb.Length = 0; sb.Append(newIndentation); if (ValueString(GetTypeString(curNS, true)) != null) sb.Append("return "); PrintMethodName(sb, bodyPrefix, _methodName); //sb.Append(bodyPrefix); //sb.Append(_methodName); sb.Append('('); if (_params.Count > 0) { Util.Log("URTMethod.PrintCSC Invoke _params[0] 3 PrintCSC"); ((URTParam) _params[0]).PrintCSC(sb); for (int i=1;i<_params.Count;i++) { sb.Append(", "); Util.Log("URTMethod.PrintCSC Invoke _params 4 PrintCSC"); ((URTParam) _params[i]).PrintCSC(sb); } } sb.Append(");"); } textWriter.WriteLine(sb); textWriter.Write(indentation); textWriter.WriteLine('}'); } }
internal override void PrintCSC(TextWriter textWriter, String indentation, String namePrefix, String curNS, MethodPrintEnum methodPrintEnum, bool bURTType, String bodyPrefix, StringBuilder sb) { Util.Log("RRMethod.PrintCSC name "+_requestElementName+" namePrefix "+namePrefix+" curNS "+curNS+" methodPrintEnum "+((Enum)methodPrintEnum).ToString()); //if(bURTType == false) // Don't want to generate a Finalize or destructor method if (Name == "Finalize") return; bool bSoapAction = false; if (SoapAction != null) bSoapAction = true; if ((bSoapAction || !bURTType) && !_wsdlMethodInfo.bProperty) { sb.Length = 0; sb.Append(indentation); sb.Append("[SoapMethod("); if (bSoapAction) { sb.Append("SoapAction="); sb.Append(WsdlParser.IsValidUrl(SoapAction)); } if (!bURTType) { if (bSoapAction) sb.Append(","); sb.Append("ResponseXmlElementName="); sb.Append(WsdlParser.IsValidUrl(_responseElementName)); if (MethodType != null) { sb.Append(", ReturnXmlElementName="); sb.Append(WsdlParser.IsValidUrl(MethodType.Name)); } sb.Append(", XmlNamespace="); sb.Append(WsdlParser.IsValidUrl(_wsdlMethodInfo.inputMethodNameNs)); sb.Append(", ResponseXmlNamespace="); sb.Append(WsdlParser.IsValidUrl(_wsdlMethodInfo.outputMethodNameNs)); } sb.Append(")]"); textWriter.WriteLine(sb); } Util.Log("RRMethod.PrintCSC Invoke base PrintCSC"); base.PrintCSC(textWriter, indentation, namePrefix, curNS, methodPrintEnum, bURTType, bodyPrefix, sb); return; }
internal static bool FlagTest(MethodPrintEnum flag, MethodPrintEnum target) { if ((flag & target) == target) return true; else return false; }