예제 #1
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());
        }
        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());
        }