Пример #1
0
        public void Process(string inputXmlFile, GenBase [] gens, string outputXmlFile, int reportVerbosity)
        {
            switch (reportVerbosity)
            {
            case 0:
                break;

            case 1:
                Log.Verbosity = Log.LoggingLevel.Error;
                break;

            case 2:
                Log.Verbosity = Log.LoggingLevel.Warning;
                break;

            default:
                Log.Verbosity = Log.LoggingLevel.Debug;
                break;
            }
            var api = new JavaApi();

            api.LoadReferences(gens);
            api.Load(inputXmlFile);
            api.StripNonBindables();
            api.Resolve();
            api.CreateGenericInheritanceMapping();
            api.MarkOverrides();
            api.FindDefects();
            api.Save(outputXmlFile);
        }
        public static void LoadReferences(this JavaApi api, IEnumerable <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((InterfaceGen)gen);
                }
                else if (gen is ClassGen)
                {
                    var kls = new JavaClass(pkg);
                    pkg.Types.Add(kls);
                    kls.Load((ClassGen)gen);
                }
                else
                {
                    throw new InvalidOperationException();
                }
                api.LoadReferences(gen.NestedTypes);
            }
        }
Пример #3
0
        public void Process(string inputXmlFile, GenBase [] gens, string outputXmlFile)
        {
            var api = new JavaApi();

            api.LoadReferences(gens);
            api.Load(inputXmlFile);
            api.Resolve();
            api.CreateGenericInheritanceMapping();
            api.MarkOverrides();
            api.FindDefects();
            api.Save(outputXmlFile);
        }
Пример #4
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);
            }
        }