Beispiel #1
0
            // 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;
            }
Beispiel #2
0
            /*
            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('}');
                }
            }
Beispiel #3
0
            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;
            }
Beispiel #4
0
 internal static bool FlagTest(MethodPrintEnum flag, MethodPrintEnum target)
 {
     if ((flag & target) == target)
         return true;
     else
         return false;
 }