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(); } } }
protected JavaType(JavaPackage parent) { Parent = parent; Implements = new List <JavaImplements> (); Members = new List <JavaMember> (); }
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); }
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(); } }
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(); } }
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); } }
public ManagedType(JavaPackage package) : base(package) { }
public JavaClass(JavaPackage parent) : base(parent) { }
public JavaInterface(JavaPackage parent) : base(parent) { }