コード例 #1
0
        public static void LoadReferences(this JavaApi api, GenBase [] gens)
        {
            JavaPackage pkg = null;

            foreach (var gen in gens.Where(_ => _.IsAcw))
            {
                pkg = api.Packages.FirstOrDefault(_ => _.Name == gen.PackageName);
                if (pkg == null)
                {
                    pkg = new JavaPackage(api)
                    {
                        Name = gen.PackageName
                    };
                    api.Packages.Add(pkg);
                }
                if (gen is InterfaceGen)
                {
                    var iface = new JavaInterface(pkg);
                    pkg.Types.Add(iface);
                    iface.Load(gen);
                }
                else if (gen is ClassGen)
                {
                    var kls = new JavaClass(pkg);
                    pkg.Types.Add(kls);
                    kls.Load(gen);
                }
                else
                {
                    throw new InvalidOperationException();
                }
            }
        }
コード例 #2
0
        protected JavaType(JavaPackage parent)
        {
            Parent = parent;

            Implements = new List <JavaImplements> ();
            Members    = new List <JavaMember> ();
        }
コード例 #3
0
 static ManagedType()
 {
     dummy_system_package = new JavaPackage(null)
     {
         Name = "System"
     };
     system_object = new ManagedType(dummy_system_package)
     {
         Name = "Object"
     };
     system_exception = new ManagedType(dummy_system_package)
     {
         Name = "Exception"
     };
     dummy_system_package.Types.Add(system_object);
     dummy_system_package.Types.Add(system_exception);
     dummy_system_io_package = new JavaPackage(null)
     {
         Name = "System.IO"
     };
     system_io_stream = new ManagedType(dummy_system_io_package)
     {
         Name = "Stream"
     };
     dummy_system_io_package.Types.Add(system_io_stream);
     dummy_system_xml_package = new JavaPackage(null)
     {
         Name = "System.Xml"
     };
     system_xml_xmlreader = new ManagedType(dummy_system_xml_package)
     {
         Name = "XmlReader"
     };
     dummy_system_io_package.Types.Add(system_xml_xmlreader);
 }
コード例 #4
0
        public static void Load(this JavaPackage package, XmlReader reader, bool isReferenceOnly)
        {
            reader.MoveToContent();
            package.Name    = XmlUtil.GetRequiredAttribute(reader, "name");
            package.JniName = reader.GetAttribute("jni-name");
            if (reader.MoveToFirstAttribute())
            {
                if (reader.LocalName != "name")
                {
                    throw XmlUtil.UnexpectedAttribute(reader, "package");
                }
            }
            reader.MoveToElement();
            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                reader.Read();
                do
                {
                    reader.MoveToContent();
                    if (reader.NodeType == XmlNodeType.EndElement)
                    {
                        break;                         // </package>
                    }
                    if (reader.NodeType != XmlNodeType.Element)
                    {
                        throw XmlUtil.UnexpectedElementOrContent("package", reader, "class", "interface");
                    }
                    if (reader.LocalName == "class")
                    {
                        var kls = new JavaClass(package)
                        {
                            IsReferenceOnly = isReferenceOnly
                        };
                        kls.Load(reader);
                        package.AddType(kls);
                    }
                    else if (reader.LocalName == "interface")
                    {
                        var iface = new JavaInterface(package)
                        {
                            IsReferenceOnly = isReferenceOnly
                        };
                        iface.Load(reader);
                        package.AddType(iface);
                    }
                    else
                    {
                        throw XmlUtil.UnexpectedElementOrContent("package", reader, "class", "interface");
                    }
                } while (true);

                XmlUtil.VerifyEndElement(reader, "package");
                reader.Read();
            }
        }
コード例 #5
0
        public static void Load(this JavaApi api, XmlReader reader, bool isReferenceOnly)
        {
            reader.MoveToContent();
            if (reader.LocalName != "api")
            {
                throw XmlUtil.UnexpectedElementOrContent(null, reader, "api");
            }
            api.ExtendedApiSource = reader.GetAttribute("api-source");
            api.Platform          = reader.GetAttribute("platform");
            XmlUtil.CheckExtraneousAttributes("api", reader, "api-source", "platform");
            if (reader.IsEmptyElement)
            {
                reader.Read();
            }
            else
            {
                reader.Read();
                do
                {
                    reader.MoveToContent();
                    if (reader.NodeType == XmlNodeType.EndElement)
                    {
                        break;                         // </api>
                    }
                    if (reader.NodeType != XmlNodeType.Element || reader.LocalName != "package")
                    {
                        throw XmlUtil.UnexpectedElementOrContent("api", reader, "package");
                    }

                    var name = reader.GetAttribute("name");

                    if (!api.Packages.TryGetValue(name, out var pkg))
                    {
                        pkg = new JavaPackage(api);
                        api.Packages.Add(name, pkg);
                    }

                    pkg.Load(reader, isReferenceOnly);
                } while (true);

                XmlUtil.VerifyEndElement(reader, "api");
                reader.Read();
            }
        }
コード例 #6
0
        public static void LoadReferences(this JavaApi api, CodeGenerationOptions opt, IEnumerable <GenBase> gens)
        {
            JavaPackage pkg = null;

            foreach (var gen in gens.Where(_ => _.IsAcw))
            {
                if (!api.Packages.TryGetValue(gen.PackageName, out pkg))
                {
                    pkg = new JavaPackage(api)
                    {
                        Name = gen.PackageName
                    };
                    api.Packages.Add(pkg.Name, pkg);
                }

                if (gen is InterfaceGen iface_gen)
                {
                    var iface = new JavaInterface(pkg);
                    iface.Load(iface_gen);

                    pkg.AddType(iface);
                }
                else if (gen is ClassGen class_gen)
                {
                    var kls = new JavaClass(pkg);
                    kls.Load(opt, class_gen);

                    pkg.AddType(kls);
                }
                else
                {
                    throw new InvalidOperationException();
                }
                api.LoadReferences(opt, gen.NestedTypes);
            }
        }
コード例 #7
0
 public ManagedType(JavaPackage package) : base(package)
 {
 }
コード例 #8
0
 public JavaClass(JavaPackage parent)
     : base(parent)
 {
 }
コード例 #9
0
 public JavaInterface(JavaPackage parent)
     : base(parent)
 {
 }