Beispiel #1
0
        public JavaFile Interpret(string path)
        {
            JavaFile jfile = new JavaFile();

            jfile.path = path;

            //Read file
            string file = ReadFile(path);

            //Package
            //Console.WriteLine("Package:");
            jfile.package = GetPackage(file);
            //Console.WriteLine(jfile.package);

            //Imports
            //Console.WriteLine("Imports:");
            jfile.imports = GetImports(file);

            /*foreach(string import in jfile.imports){
             *  Console.WriteLine(import);
             * }*/

            //Classes
            //Console.WriteLine("Classes:");
            jfile.classes = getCIEAsByKeyword("class", path, file);

            /*foreach(string clas in jfile.classes){
             *  Console.WriteLine(JavaCIEAHolder.getObject(clas).content);
             * }*/

            //Interfaces
            //Console.WriteLine("Interfaces:");
            jfile.annotations = getCIEAsByKeyword("@interface", path, file);
            jfile.interfaces  = RemoveUnwantedInterfaces(getCIEAsByKeyword("interface", path, file), jfile.annotations);

            /*foreach(string clas in jfile.interfaces){
             *  Console.WriteLine(JavaCIEAHolder.getObject(clas).content);
             * }*/

            //Enums
            //Console.WriteLine("Enums:");
            jfile.enums = getCIEAsByKeyword("enum", path, file);

            /*foreach(string clas in jfile.enums){
             *  Console.WriteLine(JavaCIEAHolder.getObject(clas).content);
             * }*/
            //Annotations
            //Console.WriteLine("Annotations:");

            /*foreach(string clas in jfile.annotations){
             *  Console.WriteLine(JavaCIEAHolder.getObject(clas).content);
             * }*/



            return(jfile);
        }
Beispiel #2
0
            public bool tryAddJavaFile(string key, JavaFile value)
            {
                if (Enumerate(javaFilesDict).Any(jf => jf.Module == value.Module && jf.Path == value.Path))
                {
                    return(false);
                }

                javaVersion++;
                AddValue(javaFilesDict, key, value);
                return(true);
            }
Beispiel #3
0
        // This file contains code that generates typesafe Java bindings for C# code in Unity.
        // Currently not used by anyone and is not maintained.

        record GeneratedJavaFile(string SourcePath, Location Location, JavaFile JavaFile) : GeneratedFile(SourcePath, Location);
        public static void ResolveAndAddImports <T>(this JavaTemplateBase <T> template, JavaFile file)
        {
            var dependencies = template.GetTemplateDependencies().Select(template.ExecutionContext.FindTemplateInstance <ITemplate>).Distinct();

            foreach (var import in template.ResolveAllImports())
            {
                if (file.ImportExists(import) || template.Package == FixImport(import).RemoveSuffix("." + FixImport(import).Split('.').Last()))
                {
                    continue;
                }

                file.AddImport($@"
{import}");
            }
        }