GenerateImport() public méthode

public GenerateImport ( StreamWriter sw ) : void
sw System.IO.StreamWriter
Résultat void
Exemple #1
0
        void GenerateGType(StreamWriter sw)
        {
            Method m = GetMethod("GetType");

            if (m == null)
            {
                throw new Exception("Interface " + QualifiedName + " missing GetType method.");
            }
            m.GenerateImport(sw);
            sw.WriteLine("\t\tprivate static GLib.GType _gtype = new GLib.GType ({0} ());", m.CName);
            sw.WriteLine();

            // by convention, all GTypes generated have a static GType property
            sw.WriteLine("\t\tpublic static GLib.GType GType {");
            sw.WriteLine("\t\t\tget {");
            sw.WriteLine("\t\t\t\treturn _gtype;");
            sw.WriteLine("\t\t\t}");
            sw.WriteLine("\t\t}");
            sw.WriteLine();

            // we need same property but non-static, because it is being accessed via a GInterfaceAdapter instance
            sw.WriteLine("\t\tpublic override GLib.GType GInterfaceGType {");
            sw.WriteLine("\t\t\tget {");
            sw.WriteLine("\t\t\t\treturn _gtype;");
            sw.WriteLine("\t\t\t}");
            sw.WriteLine("\t\t}");

            sw.WriteLine();
        }
Exemple #2
0
        void GenerateGType(StreamWriter sw)
        {
            Method m = GetMethod("GetType");

            m.GenerateImport(sw);
            sw.WriteLine("\t\tprivate static GLib.GType _gtype = new GLib.GType ({0} ());", m.CName);
            sw.WriteLine();
            sw.WriteLine("\t\tpublic override GLib.GType GType {");
            sw.WriteLine("\t\t\tget {");
            sw.WriteLine("\t\t\t\treturn _gtype;");
            sw.WriteLine("\t\t\t}");
            sw.WriteLine("\t\t}");
            sw.WriteLine();
        }
Exemple #3
0
        void GenerateGType(StreamWriter sw)
        {
            Method m = GetMethod("GetType");

            if (m == null)
            {
                throw new Exception("Interface " + QualifiedName + " missing GetType method.");
            }
            m.GenerateImport(sw);
            sw.WriteLine("\t\tprivate static GLib.GType _gtype = new GLib.GType ({0} ());", m.CName);
            sw.WriteLine();
            sw.WriteLine("\t\tpublic override GLib.GType GType {");
            sw.WriteLine("\t\t\tget {");
            sw.WriteLine("\t\t\t\treturn _gtype;");
            sw.WriteLine("\t\t\t}");
            sw.WriteLine("\t\t}");
            sw.WriteLine();
        }
Exemple #4
0
        public void Generate(GenerationInfo gen_info, ClassBase implementor)
        {
            Method comp = null;

            gen_info.CurrentMember = Name;

            /* we are generated by the get Method, if there is one */
            if (is_set || is_get)
            {
                if (Modifiers != "new " && container_type.GetPropertyRecursively(Name.Substring(3)) != null)
                {
                    return;
                }
                comp = GetComplement();
                if (comp != null && is_set)
                {
                    if (Parameters.AccessorReturnType == comp.ReturnType)
                    {
                        return;
                    }
                    else
                    {
                        is_set = false;
                        call   = "(" + (IsStatic ? "" : container_type.CallByName() + (parms.Count > 0 ? ", " : "")) + Body.GetCallString(false) + ")";
                        comp   = null;
                    }
                }
                /* some setters take more than one arg */
                if (comp != null && !comp.is_set)
                {
                    comp = null;
                }
            }

            GenerateImport(gen_info.Writer);
            if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
            {
                comp.GenerateImport(gen_info.Writer);
            }

            if (IsDeprecated)
            {
                gen_info.Writer.WriteLine("\t\t[Obsolete]");
            }
            gen_info.Writer.Write("\t\t");
            if (Protection != "")
            {
                gen_info.Writer.Write("{0} ", Protection);
            }
            GenerateDeclCommon(gen_info.Writer, implementor);

            if (is_get || is_set)
            {
                gen_info.Writer.Write("\t\t\t");
                gen_info.Writer.Write((is_get) ? "get" : "set");
                GenerateBody(gen_info, implementor, "\t");
            }
            else
            {
                GenerateBody(gen_info, implementor, "");
            }

            if (is_get || is_set)
            {
                if (comp != null && retval.CSType == comp.Parameters.AccessorReturnType)
                {
                    gen_info.Writer.WriteLine();
                    gen_info.Writer.Write("\t\t\tset");
                    comp.GenerateBody(gen_info, implementor, "\t");
                }
                gen_info.Writer.WriteLine();
                gen_info.Writer.WriteLine("\t\t}");
            }
            else
            {
                gen_info.Writer.WriteLine();
            }

            if (Parameters.HasOptional && !(is_get || is_set))
            {
                GenerateOverloads(gen_info.Writer);
            }

            gen_info.Writer.WriteLine();

            Statistics.MethodCount++;
        }