Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            if (args == null || args.Length < 2)
            {
                Console.WriteLine("Usage: JavaToCSharpCli.exe [pathToJavaFile] [pathToCsOutputFile]");
                return;
            }

            if (!File.Exists(args[0]))
            {
                Console.WriteLine("Java input file doesn't exist!");
                return;
            }

            var javaText = File.ReadAllText(args[0]);

            // HACK for testing
            var options = new JavaConversionOptions()
                          .AddPackageReplacement("org\\.apache\\.lucene", "Lucene.Net")
                          .AddUsing("Lucene.Net")
                          .AddUsing("Lucene.Net.Support")
                          .AddUsing("Lucene.Net.Util");

            var parsed = JavaToCSharpConverter.ConvertText(javaText, options);

            File.WriteAllText(args[1], parsed);
            Console.WriteLine("Done!");
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            if (args == null || args.Length < 2)
            {
                Console.WriteLine("Usage: JavaToCSharpCli.exe [pathToJavaDir] [pathToCsOutputDir]");
                return;
            }

            //if (!File.Exists(args[0]))
            //{
            //    Console.WriteLine("Java input file doesn't exist!");
            //    return;
            //}

            var inputDir  = args[0];
            var outputDir = args[1];

            var inputInfo  = new DirectoryInfo(inputDir);
            var outputInfo = new DirectoryInfo(outputDir);

            var files     = inputInfo.GetFiles("*.java", SearchOption.AllDirectories);
            var filePaths = files.Select(x => x.FullName).ToList();

            if (filePaths.Any())
            {
                var options    = new JavaConversionOptions();
                var inOutPairs = filePaths.ToDictionary(fileIn => fileIn, fileIn => $"{fileIn.Replace(inputInfo.FullName, outputInfo.FullName)}.cs");
                WriteAllFiles(inOutPairs, options);
            }

            Console.WriteLine("Done!");
            Console.ReadKey();
        }
Ejemplo n.º 3
0
        private static void WriteAllFiles(Dictionary <string, string> files, JavaConversionOptions options)
        {
            foreach (var file in files)
            {
                var directoryName = new FileInfo(file.Value).DirectoryName;
                if (directoryName != null)
                {
                    Directory.CreateDirectory(directoryName);
                }
                if (!File.Exists(file.Value))
                {
                    var javaText = File.ReadAllText(file.Key);

                    try
                    {
                        var parsed = JavaToCSharpConverter.ConvertText(javaText, options);
                        File.WriteAllText(file.Value, parsed);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e);
                        Console.WriteLine($"Skipping file {file.Value} that would write to {file.Key}\n\n");
                    }
                }
            }
        }
Ejemplo n.º 4
0
        public static void Main(string[] args)
        {
            if (args == null || args.Length < 2)
            {
                Console.WriteLine("Usage: JavaToCSharpCli.exe [pathToJavaFile] [pathToCsOutputFile]");
                return;
            }

            if (!File.Exists(args[0]))
            {
                Console.WriteLine("Java input file doesn't exist!");
                return;
            }

            var javaText = File.ReadAllText(args[0]);

            var options = new JavaConversionOptions();

            options.WarningEncountered += (sender, eventArgs) => Console.WriteLine($"[WARNING] Line {eventArgs.JavaLineNumber}: {eventArgs.Message}");

            var parsed = JavaToCSharpConverter.ConvertText(javaText, options);

            File.WriteAllText(args[1], parsed);
            Console.WriteLine("Done!");
        }
Ejemplo n.º 5
0
        public void Convert()
        {
            var options = new JavaConversionOptions();

            options.ClearUsings();

            foreach (var ns in _usings)
            {
                options.AddUsing(ns);
            }

            options.IncludeUsings            = _includeUsings;
            options.IncludeNamespace         = _includeNamespace;
            options.UseDebugAssertForAsserts = _useDebugAssertForAsserts;

            options.WarningEncountered += options_WarningEncountered;
            options.StateChanged       += options_StateChanged;

            Task.Run(() =>
            {
                try
                {
                    var csharp = JavaToCSharpConverter.ConvertText(JavaText, options);

                    Dispatcher.CurrentDispatcher.Invoke(() => this.CSharpText = csharp);
                }
                catch (Exception ex)
                {
                    Dispatcher.CurrentDispatcher.Invoke(() =>
                    {
                        MessageBox.Show("There was an error converting the text to C#: " + ex.Message);
                    });
                }
            });
        }
Ejemplo n.º 6
0
        public static string ConvertStatement(string java)
        {
            var statement = JavaParser.parseStatement(java);
            var options = new JavaConversionOptions();
            var context = new ConversionContext(options);
            var statementSyntax = StatementVisitor.VisitStatement(context, statement);

            var tree = CSharpSyntaxTree.Create(statementSyntax);
            return tree.GetText().ToString();
        }
Ejemplo n.º 7
0
        public static string ConvertStatement(string java)
        {
            var statement       = JavaParser.parseStatement(java);
            var options         = new JavaConversionOptions();
            var context         = new ConversionContext(options);
            var statementSyntax = StatementVisitor.VisitStatement(context, statement);

            var tree = CSharpSyntaxTree.Create(statementSyntax);

            return(tree.GetText().ToString());
        }
Ejemplo n.º 8
0
        private static string ConvertStatement(string java)
        {
            var declaration             = JavaParser.parseBodyDeclaration(java);
            var options                 = new JavaConversionOptions();
            var context                 = new ConversionContext(options);
            var arrayCreationExpression = (ArrayCreationExpr)((Node)((MethodDeclaration)declaration.getChildrenNodes().get(1)).getBody().getStmts().get(0)).getChildrenNodes().get(0);
            var expressionSyntax        = ExpressionVisitor.VisitExpression(context, arrayCreationExpression).NormalizeWhitespace();

            var tree = CSharpSyntaxTree.Create(expressionSyntax);

            return(tree.GetText().ToString());
        }
Ejemplo n.º 9
0
        public static string ConvertMethodDeclaration(string java)
        {
            var javaClassDeclaration = @"
            class A
            {
                " + java + @"
            }";
            var declaration = JavaParser.parseBodyDeclaration(javaClassDeclaration);
            var options = new JavaConversionOptions();
            var context = new ConversionContext(options);
            var classDeclaration = SyntaxFactory.ClassDeclaration("A");
            var statementSyntax = BodyDeclarationVisitor.VisitBodyDeclarationForClass(context,
                classDeclaration, (BodyDeclaration)declaration.getChildrenNodes().get(0))
                .NormalizeWhitespace();

            var tree = CSharpSyntaxTree.Create(statementSyntax);
            return tree.GetText().ToString();
        }
Ejemplo n.º 10
0
        public static string ConvertMethodDeclaration(string java)
        {
            var javaClassDeclaration = @"
            class A
            {
                " + java + @"
            }";
            var declaration          = JavaParser.parseBodyDeclaration(javaClassDeclaration);
            var options          = new JavaConversionOptions();
            var context          = new ConversionContext(options);
            var classDeclaration = SyntaxFactory.ClassDeclaration("A");
            var statementSyntax  = BodyDeclarationVisitor.VisitBodyDeclarationForClass(context,
                                                                                       classDeclaration, (BodyDeclaration)declaration.getChildrenNodes().get(0))
                                   .NormalizeWhitespace();

            var tree = CSharpSyntaxTree.Create(statementSyntax);

            return(tree.GetText().ToString());
        }