Example usage for org.eclipse.jdt.core.dom CompilationUnit accept

List of usage examples for org.eclipse.jdt.core.dom CompilationUnit accept

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom CompilationUnit accept.

Prototype

public final void accept(ASTVisitor visitor) 

Source Link

Document

Accepts the given visitor on a visit of the current node.

Usage

From source file:ast.StructureParse.java

public void setCode(JTextPane textCode) {
    ASTParser parser = ASTParser.newParser(AST.JLS2);
    parser.setSource(textCode.getText().toCharArray());
    //parser.setSource("/*abc*/".toCharArray());
    parser.setKind(ASTParser.K_COMPILATION_UNIT);

    final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
    _package = new DefaultMutableTreeNode("root");

    codeTree.setRootVisible(false);//w w w.j av a  2  s  .  c o m

    cu.accept(new ASTVisitor() {
        Set names = new HashSet();

        /*
         * Package declaration
        */
        @Override
        public boolean visit(PackageDeclaration node) {
            _package = new DefaultMutableTreeNode(node.getName().toString());
            codeTree.setRootVisible(true);
            System.out.println("Package : " + node.getName().toString());
            return false;
        }

        /*
         * Class Declaration.
         * sub node from package
        */
        @Override
        public boolean visit(TypeDeclaration node) {
            String type;
            if (node.isInterface())
                type = "interface ";
            else
                type = "class ";
            _class = new DefaultMutableTreeNode(type + node.getName());
            System.out.println(type + node.getName());

            _package.add(_class);

            String superClass = node.getSuperclass() + "";
            if (!(superClass.equals("null") || (superClass.equals("")))) {
                _class.add(new DefaultMutableTreeNode("extends " + superClass));
                System.out.println("Extends : " + superClass);
            }

            for (Object getInterface : node.superInterfaces()) {
                _class.add(new DefaultMutableTreeNode("implements " + getInterface));
                System.out.println("Implements : " + getInterface);
            }
            return true;
        }

        /*
         * method declaration
         * sub node from class
        */
        @Override
        public boolean visit(MethodDeclaration node) {
            _method = new DefaultMutableTreeNode(node.getName());
            _class.add(_method);
            System.out.println("MethodDeclaration : " + node.getName());
            return true;
        }

        /*
         * field declaration
         * sub node from class
        */
        //            @Override
        //            public boolean visit(FieldDeclaration node)
        //            {
        //                _field=new DefaultMutableTreeNode(node.toString());
        //                _class.add(_field);
        //                Object o = node.fragments().get(0);
        //                if(o instanceof VariableDeclarationFragment){
        //                    _method.add(new DefaultMutableTreeNode(o.toString()));
        //                }
        //                return false;
        //            }

        /*
         * Variable declaration fragment AST node type
         * used in field declarations
         * local variable declarations
         * sub node from method
        */
        @Override
        public boolean visit(VariableDeclarationFragment node) {
            if (node.getParent() instanceof FieldDeclaration) {
                FieldDeclaration declaration = ((FieldDeclaration) node.getParent());
                _class.add(new DefaultMutableTreeNode(declaration.getType().toString()));
                System.out.println("FieldDeclaration : " + declaration.getType().toString());
            } else {
                _method.add(new DefaultMutableTreeNode(node.toString()));
                System.out.println("VariableDeclarationFragment : " + node.toString());
            }
            return false; // do not continue to avoid usage info
        }

        @Override
        public boolean visit(VariableDeclarationStatement node) {
            _method.add(new DefaultMutableTreeNode(node.toString()));
            System.out.println("VariableDeclarationStatement : " + node.toString());
            return false;
        }

        /*
         * Simple Name
         * A simple name is an identifier other than a keyword, boolean literal ("true", "false") or null literal ("null"). 
        */
        @Override
        public boolean visit(SimpleName node) {
            if (this.names.contains(node.getIdentifier())) {
                _method.add(new DefaultMutableTreeNode(node.toString()));
                System.out.println("SimpleNode Identifier : " + node.toString());
            }
            return false;
        }

        /*
         * Alternate constructor invocation (calling constructor) statement AST node type
         * For JLS2: 
        */
        @Override
        public boolean visit(SuperConstructorInvocation node) {
            _constructorCall = new DefaultMutableTreeNode(node);
            _method.add(_constructorCall);
            System.out.println("SuperConstructorInvocation : " + node);
            return false;
        }

        /*
         * method call
        */
        @Override
        public boolean visit(MethodInvocation node) {
            _methodCall = new DefaultMutableTreeNode(node);
            _method.add(_methodCall);
            System.out.println("MethodInvocation : " + node);
            return false;
        }

        @Override
        public boolean visit(SuperMethodInvocation node) {
            _methodCall = new DefaultMutableTreeNode(node);
            _method.add(_methodCall);
            System.out.println("SuperMethodInvocation : " + node);
            return false;
        }

        @Override
        public boolean visit(ReturnStatement node) {
            _method.add(new DefaultMutableTreeNode(node.toString()));
            System.out.println("ReturnStatement : " + node.toString());
            return false;
        }

        @Override
        public boolean visit(IfStatement node) {
            String elseExist = "";
            _if = new DefaultMutableTreeNode("if (" + node.getExpression() + ")");
            _method.add(_if);
            System.out.println("if : " + node.getExpression());
            enclose(node.getThenStatement().toString(), _if);
            elseExist = node.getElseStatement() + "";
            if (!(elseExist.equals("") || elseExist.equals("null"))) {
                _else = new DefaultMutableTreeNode("else");
                _method.add(_else);
                System.out.println("else : " + node.getElseStatement().toString());
                enclose(node.getElseStatement().toString(), _else);
            }
            return false;
        }

        @Override
        public boolean visit(EnhancedForStatement node) {
            _for = new DefaultMutableTreeNode(
                    "for (" + node.getParameter() + " : " + node.getExpression() + ")");
            _method.add(_for);
            System.out.println("EnchancedFor : (" + node.getParameter() + " : " + node.getExpression() + ")");
            enclose(node.getBody() + "", _for);
            return false;
        }

        @Override
        public boolean visit(ForStatement node) {
            /*
             * because initial may more than 1.
            */
            String initial = "";
            for (int i = 0; i < node.initializers().size(); i++) {
                initial += node.initializers().get(i);
                if (node.initializers().size() - 1 != i)
                    initial += ", ";
            }

            /*
             * because increment may more than 1
            */
            String inc = "";
            for (int i = 0; i < node.updaters().size(); i++) {
                inc += node.updaters().get(i);
                if (node.updaters().size() - 1 != i)
                    inc += ", ";
            }

            _for = new DefaultMutableTreeNode(
                    "for (" + initial + "; " + node.getExpression() + "; " + inc + ")");
            _method.add(_for);
            System.out.println("for (" + initial + "; " + node.getExpression() + "; " + inc + ")");
            enclose(node.getBody().toString(), _for);
            return false;
        }

        @Override
        public boolean visit(WhileStatement node) {
            _while = new DefaultMutableTreeNode("while " + node.getExpression());
            _method.add(_while);
            System.out.println("WhileStatement : " + node.getExpression());
            enclose(node.getBody().toString(), _while);
            return false;
        }

        @Override
        public boolean visit(DoStatement node) {
            _do = new DefaultMutableTreeNode("do");
            _method.add(_do);
            System.out.println("Do");
            enclose(node.getBody().toString(), _do);
            _while = new DefaultMutableTreeNode("while(" + node.getExpression() + ")");
            _method.add(_while);
            System.out.println("WhileDo : " + node.getExpression());
            return false;
        }

        @Override
        public boolean visit(TryStatement node) {
            String ada = "";
            _try = new DefaultMutableTreeNode("try");
            _method.add(_try);
            System.out.println("try");
            enclose(node.getBody().toString(), _try);
            ada = node.getFinally() + "";
            if (!(ada.equals("") || ada.equals("null"))) {
                _final = new DefaultMutableTreeNode("finally");
                _method.add(_final);
                System.out.println("finall");
                enclose(node.getFinally().toString(), _final);
            }
            return false;
        }

        @Override
        public boolean visit(CatchClause node) {
            _catch = new DefaultMutableTreeNode("catch (" + node.getException() + ")");
            _method.add(_catch);
            System.out.println("catch : " + node.getException());
            enclose(node.getBody().toString(), _catch);
            return false;
        }

        @Override
        public boolean visit(Assignment node) {
            _assignment = new DefaultMutableTreeNode(node.toString());
            _method.add(_assignment);
            System.out.println("Assignment : " + node.toString());
            return false;
        }

        @Override
        public boolean visit(ConstructorInvocation node) {
            _constructorCall = new DefaultMutableTreeNode(node.toString());
            _method.add(_constructorCall);
            System.out.println(node.toString());
            return false;
        }

        @Override
        public boolean visit(AnonymousClassDeclaration node) {
            _constructorCall = new DefaultMutableTreeNode(node.toString());
            _method.add(_constructorCall);
            System.out.println("AnonymousClassDeclaration : " + node.toString());
            return false;
        }

        @Override
        public boolean visit(ArrayAccess node) {
            _class = new DefaultMutableTreeNode(node.toString());
            _method.add(_class);
            System.out.println("AbstrackTypeDeclaration : " + node.toString());
            return false;
        }

        @Override
        public boolean visit(ArrayCreation node) {
            _array = new DefaultMutableTreeNode(node.toString());
            _method.add(_array);
            System.out.println("ArrayCreation : " + node.toString());
            return false;
        }

        @Override
        public boolean visit(ArrayInitializer node) {
            _array = new DefaultMutableTreeNode(node.toString());
            System.out.println("ArrayInitialize : " + node.toString());
            _method.add(_array);
            return false;
        }

        @Override
        public boolean visit(AssertStatement node) {
            _statement = new DefaultMutableTreeNode(node.toString());
            System.out.println("AssertStatement : " + node.toString());
            _method.add(_statement);
            return false;
        }

        @Override
        public boolean visit(ContinueStatement node) {
            _statement = new DefaultMutableTreeNode(node.toString());
            System.out.println("ContinueStatement : " + node.toString());
            _method.add(_statement);
            return false;
        }

        @Override
        public boolean visit(SwitchStatement node) {
            _switch = new DefaultMutableTreeNode("switch (" + node.getExpression() + ")");
            System.out.println("switch (" + node.getExpression() + ")");
            _method.add(_switch);
            List getStatement = node.statements();
            for (Object st : getStatement) {
                Matcher _caseMatch = Pattern.compile("^case\\s+.+\\:").matcher(st.toString());
                if (_caseMatch.find()) {
                    _case = new DefaultMutableTreeNode(_caseMatch.group());
                    _switch.add(_case);
                }

                enclose(st.toString(), _case);

                Matcher _breakMatch = Pattern.compile("^break\\s*.*;").matcher(st.toString());
                if (_breakMatch.find()) {
                    _break = new DefaultMutableTreeNode(_breakMatch.group());
                    _case.add(_break);
                }
            }
            return false;
        }

        @Override
        public boolean visit(ClassInstanceCreation node) {
            _constructorCall = new DefaultMutableTreeNode(node.toString());
            System.out.println("ClassInstanceCreation : " + node.toString());
            _method.add(_constructorCall);
            return false;
        }
    });

    //        model = new DefaultTreeModel(_package);
    //        model.reload();
    //        codeTree.setModel(model);
    codeTree.setModel(new DefaultTreeModel(_package) {
        public void reload(TreeNode node) {
            if (node != null) {
                fireTreeStructureChanged(this, getPathToRoot(node), null, null);
            }
        }
    });
    codeTree.setCellRenderer(new TreeRender());
    //        ((DefaultTreeModel)codeTree.getModel()).reload();
    for (int i = 0; i < codeTree.getRowCount(); i++)
        codeTree.expandRow(i);
}

From source file:ast.StructureParse.java

private void enclose(String body, DefaultMutableTreeNode parentNode) {
    ASTParser parser = ASTParser.newParser(AST.JLS2);
    /*/*from w w  w. j  av a 2 s . c om*/
     * make parse result into OPP structure, because AST wanna be that.
    */
    String setClass = "class fo{\nvoid foo(){ \n" + body + "\n}\n}";
    parser.setSource(setClass.toCharArray());
    //parser.setSource("/*abc*/".toCharArray());
    parser.setKind(ASTParser.K_COMPILATION_UNIT);
    //ASTNode node = parser.createAST(null);
    parser.setResolveBindings(true);

    try {
        final CompilationUnit cu = (CompilationUnit) parser.createAST(null);

        cu.accept(new ASTVisitor() {
            Set names2 = new HashSet();

            @Override
            public boolean visit(SimpleName node) {
                if (this.names2.contains(node.getIdentifier())) {
                    parentNode.add(new DefaultMutableTreeNode(node.toString()));
                    System.out.println("SimpleNode : " + node.toString());
                }
                return true;
            }

            @Override
            public boolean visit(EnhancedForStatement node) {
                _for = new DefaultMutableTreeNode(
                        "for (" + node.getParameter() + " : " + node.getExpression() + ")");
                parentNode.add(_for);
                System.out.println("for (" + node.getParameter() + " : " + node.getExpression() + ")");
                enclose(node.getBody().toString(), _for);
                return false;
            }

            @Override
            public boolean visit(ForStatement node) {
                /*
                 * because initial may more than 1.
                */
                String initial = "";
                for (int i = 0; i < node.initializers().size(); i++) {
                    initial += node.initializers().get(i);
                    if (node.initializers().size() - 1 != i)
                        initial += ", ";
                }

                /*
                 * because increment may more than 1
                */
                String inc = "";
                for (int i = 0; i < node.updaters().size(); i++) {
                    inc += node.updaters().get(i);
                    if (node.updaters().size() - 1 != i)
                        inc += ", ";
                }

                _for = new DefaultMutableTreeNode(
                        "for (" + initial + "; " + node.getExpression() + "; " + inc + ")");
                parentNode.add(_for);
                System.out.println("for (" + initial + "; " + node.getExpression() + "; " + inc + ")");
                enclose(node.getBody().toString(), _for);
                return false;
            }

            @Override
            public boolean visit(IfStatement node) {
                String elseExist = "";
                _if = new DefaultMutableTreeNode("if (" + node.getExpression() + ")");
                System.out.println("if (+" + node.getExpression() + ")");
                parentNode.add(_if);
                enclose(node.getThenStatement().toString(), _if);
                elseExist = node.getElseStatement() + "";
                if (!(elseExist.equals("") || (elseExist.equals("null")))) {
                    _else = new DefaultMutableTreeNode("else");
                    System.out.println("else");
                    parentNode.add(_else);
                    enclose(node.getElseStatement().toString(), _else);
                }
                return false;
            }

            @Override
            public boolean visit(VariableDeclarationFragment node) {
                if (node.getParent() instanceof FieldDeclaration) {
                    FieldDeclaration declaration = ((FieldDeclaration) node.getParent());
                    _class.add(new DefaultMutableTreeNode(declaration.getType().toString()));
                } else {
                    System.out.println("VariableDeclarationFragment : " + node.toString());
                    parentNode.add(new DefaultMutableTreeNode(node.toString()));
                }
                return false; // do not continue to avoid usage info
            }

            @Override
            public boolean visit(ReturnStatement node) {
                parentNode.add(new DefaultMutableTreeNode(node.toString()));
                System.out.println("Return : " + node.toString());
                return false;
            }

            @Override
            public boolean visit(SuperConstructorInvocation node) {
                _constructorCall = new DefaultMutableTreeNode(node);
                parentNode.add(_constructorCall);
                System.out.println("SuperConstructorInvocation : " + node);
                return false;
            }

            @Override
            public boolean visit(MethodInvocation node) {
                _methodCall = new DefaultMutableTreeNode(node);
                parentNode.add(_methodCall);
                System.out.println("MethodInvocation : " + node);
                return true;
            }

            @Override
            public boolean visit(SuperMethodInvocation node) {
                _methodCall = new DefaultMutableTreeNode(node);
                parentNode.add(_methodCall);
                System.out.println("SuperMethodInvocation : " + node);
                return false;
            }

            @Override
            public boolean visit(WhileStatement node) {
                _while = new DefaultMutableTreeNode("while " + node.getExpression());
                parentNode.add(_while);
                System.out.println("WhileStatement : " + node.getExpression());
                enclose(node.getBody().toString(), _while);
                return false;
            }

            @Override
            public boolean visit(DoStatement node) {
                _do = new DefaultMutableTreeNode("do");
                parentNode.add(_do);
                System.out.println("do");
                enclose(node.getBody().toString(), _do);
                _while = new DefaultMutableTreeNode("while(" + node.getExpression() + ")");
                parentNode.add(_while);
                return false;
            }

            @Override
            public boolean visit(TryStatement node) {
                String ada = "";
                _try = new DefaultMutableTreeNode("try");
                parentNode.add(_try);
                System.out.println("try");
                enclose(node.getBody().toString(), _try);
                ada = node.getFinally() + "";
                if (!(ada.equals("") || (ada.equals("null")))) {
                    _final = new DefaultMutableTreeNode("finally");
                    parentNode.add(_final);
                    System.out.println("finally");
                    enclose(node.getFinally().toString(), _final);
                }
                return false;
            }

            @Override
            public boolean visit(CatchClause node) {
                _catch = new DefaultMutableTreeNode("catch (" + node.getException() + ")");
                parentNode.add(_catch);
                System.out.println("catch : " + node.getException());
                enclose(node.getBody().toString(), _catch);
                return false;
            }

            @Override
            public boolean visit(Assignment node) {
                _assignment = new DefaultMutableTreeNode(node.toString());
                parentNode.add(_assignment);
                System.out.println("Assignment : " + node.toString());
                return false;
            }

            @Override
            public boolean visit(ConstructorInvocation node) {
                _constructorCall = new DefaultMutableTreeNode(node.toString());
                parentNode.add(_constructorCall);
                System.out.println(node.toString());
                return false;
            }

            @Override
            public boolean visit(AnonymousClassDeclaration node) {
                _constructorCall = new DefaultMutableTreeNode(node.toString());
                parentNode.add(_constructorCall);
                System.out.println("AnonymousClassDeclaration : " + node.toString());
                return false;
            }

            @Override
            public boolean visit(ArrayAccess node) {
                _class = new DefaultMutableTreeNode(node.toString());
                parentNode.add(_class);
                System.out.println("AbstrackTypeDeclaration : " + node.toString());
                return false;
            }

            @Override
            public boolean visit(ArrayCreation node) {
                _array = new DefaultMutableTreeNode(node.toString());
                _method.add(_array);
                System.out.println("ArrayCreation : " + node.toString());
                return false;
            }

            @Override
            public boolean visit(ArrayInitializer node) {
                _array = new DefaultMutableTreeNode(node.toString());
                System.out.println("ArrayInitialize : " + node.toString());
                parentNode.add(_array);
                return false;
            }

            @Override
            public boolean visit(AssertStatement node) {
                _statement = new DefaultMutableTreeNode(node.toString());
                System.out.println("AssertStatement : " + node.toString());
                parentNode.add(_statement);
                return false;
            }

            @Override
            public boolean visit(ContinueStatement node) {
                _statement = new DefaultMutableTreeNode(node.toString());
                System.out.println("ContinueStatement : " + node.toString());
                parentNode.add(_statement);
                return false;
            }

            @Override
            public boolean visit(SwitchStatement node) {
                _switch = new DefaultMutableTreeNode("switch (" + node.getExpression() + ")");
                System.out.println("switch (" + node.getExpression() + ")");
                parentNode.add(_switch);
                List getStatement = node.statements();
                for (Object st : getStatement) {
                    Matcher _caseMatch = Pattern.compile("^case\\s+.+\\:").matcher(st.toString());
                    if (_caseMatch.find()) {
                        _case = new DefaultMutableTreeNode(_caseMatch.group());
                        _switch.add(_case);
                    }

                    enclose(st.toString(), _case);

                    Matcher _breakMatch = Pattern.compile("^break\\s*.*;").matcher(st.toString());
                    if (_breakMatch.find()) {
                        _break = new DefaultMutableTreeNode(_breakMatch.group());
                        _case.add(_break);
                    }
                }
                return false;
            }

            @Override
            public boolean visit(ClassInstanceCreation node) {
                _constructorCall = new DefaultMutableTreeNode(node.toString());
                System.out.println("ClassInstanceCreation : " + node.toString());
                parentNode.add(_constructorCall);
                return false;
            }
        });
    } catch (Exception ex) {
        ex.printStackTrace();
    }
}

From source file:boa.datagen.scm.AbstractCommit.java

License:Apache License

private boolean parseJavaFile(final String path, final ChangedFile.Builder fb, final String content,
        final String compliance, final int astLevel, final boolean storeOnError, Writer astWriter, String key) {
    try {//from  w  ww .  ja  v  a 2s .c o m
        final ASTParser parser = ASTParser.newParser(astLevel);
        parser.setKind(ASTParser.K_COMPILATION_UNIT);
        parser.setResolveBindings(true);
        parser.setSource(content.toCharArray());

        final Map options = JavaCore.getOptions();
        JavaCore.setComplianceOptions(compliance, options);
        parser.setCompilerOptions(options);

        final CompilationUnit cu = (CompilationUnit) parser.createAST(null);

        final JavaErrorCheckVisitor errorCheck = new JavaErrorCheckVisitor();
        cu.accept(errorCheck);

        if (!errorCheck.hasError || storeOnError) {
            final ASTRoot.Builder ast = ASTRoot.newBuilder();
            //final CommentsRoot.Builder comments = CommentsRoot.newBuilder();
            final JavaVisitor visitor = new JavaVisitor(content, connector.nameIndices);
            try {
                ast.addNamespaces(visitor.getNamespaces(cu));
                for (final String s : visitor.getImports())
                    ast.addImports(s);
                /*for (final Comment c : visitor.getComments())
                   comments.addComments(c);*/
            } catch (final UnsupportedOperationException e) {
                return false;
            } catch (final Exception e) {
                if (debug)
                    System.err.println("Error visiting: " + path);
                e.printStackTrace();
                return false;
            }

            if (astWriter != null) {
                try {
                    astWriter.append(new Text(key), new BytesWritable(ast.build().toByteArray()));
                } catch (IOException e) {
                    e.printStackTrace();
                }
            } else
                fb.setAst(ast);
            //fb.setComments(comments);
        }

        return !errorCheck.hasError;
    } catch (final Exception e) {
        e.printStackTrace();
        return false;
    }
}

From source file:boa.datagen.util.Java7Visitor.java

License:Apache License

public Namespace getNamespaces(CompilationUnit node) {
    root = node;
    node.accept(this);
    return b.build();
}

From source file:br.ufal.cideei.soot.instrument.asttounit.ASTNodeUnitBridge.java

License:Open Source License

/**
 * Gets the ASTNodes from a unit. This transition takes into consideration
 * the position of unit in the source code. The SourceLnPosTag must be
 * present in this unit or an {@link IllegalArgumentException} will be
 * thrown.//from   w ww  .  j a  v a 2s .  c o m
 * 
 * @param unit
 *            the unit
 * @param compilationUnit
 *            the compilation unit
 * @return the aST nodes from unit
 */
public static Collection<ASTNode> getASTNodesFromUnit(Unit unit, CompilationUnit compilationUnit) {
    ASTNodesAtRangeFinder ASTNodeVisitor;
    try {
        ASTNodeVisitor = new ASTNodesAtRangeFinder(unit, compilationUnit);
    } catch (IllegalArgumentException ex) {
        // TODO: silently ignoring an error is a bad idea.
        return Collections.emptyList();
    }
    compilationUnit.accept(ASTNodeVisitor);
    return ASTNodeVisitor.getNodes();
}

From source file:br.ufal.cideei.soot.instrument.asttounit.ASTNodeUnitBridge.java

License:Open Source License

/**
 * Gets the ASTNodes from lines.//  w ww. ja  v a 2s.  co m
 * 
 * @param lines
 *            the lines
 * @param compilationUnit
 *            the compilation unit
 * @return the aST nodes from lines
 */
public static Collection<ASTNode> getASTNodesFromLines(Collection<Integer> lines,
        CompilationUnit compilationUnit) {
    MultipleLineNumbersVisitor linesVisitor = new MultipleLineNumbersVisitor(lines, compilationUnit);
    compilationUnit.accept(linesVisitor);
    return linesVisitor.getNodes();
}

From source file:br.uff.ic.gems.resources.ast.ASTExtractor.java

public void parser() throws IOException {
    ASTParser parser = ASTParser.newParser(AST.JLS3);
    File file = new File(filePath);

    String stringFile = FileUtils.readFileToString(file);
    parser.setSource(stringFile.toCharArray());
    parser.setKind(ASTParser.K_COMPILATION_UNIT);

    //Setting options
    Map options;/* w  ww .j a va 2s  .c  o m*/
    options = JavaCore.getOptions();
    options.put(JavaCore.COMPILER_COMPLIANCE, JavaCore.VERSION_1_7);
    options.put(JavaCore.COMPILER_CODEGEN_TARGET_PLATFORM, JavaCore.VERSION_1_7);
    options.put(JavaCore.COMPILER_SOURCE, JavaCore.VERSION_1_7);
    parser.setCompilerOptions(options);

    final CompilationUnit cu = (CompilationUnit) parser.createAST(null);
    Visitor visitor = new Visitor(cu);
    cu.accept(visitor);

    List<Comment> commentList = cu.getCommentList();

    for (Comment comment : commentList) {
        comment.accept(visitor);
    }

    languageConstructs = visitor.getLanguageConstructs();

}

From source file:br.uff.ic.mergeguider.javaparser.JavaParser.java

public List<ClassLanguageContructs> parser(String path) {
    List<ClassLanguageContructs> classesLanguageConstructs = new ArrayList<>();

    JavaParser javaParser = new JavaParser();
    Storage ASTs = javaParser.generateASTs(path);

    Set<String> classes = ASTs.keys();

    for (String classPath : classes) {
        CompilationUnit cu = ASTs.get(classPath);

        DepVisitor depVisitor = new DepVisitor(cu, classPath);
        cu.accept(depVisitor);

        for (ClassLanguageContructs classLanguageConstructs : depVisitor.getClassesLanguageConstructs()) {
            String qualifiedName = classLanguageConstructs.getQualifiedName();

            if (qualifiedName != null) {

                ClassLanguageContructs clc = new ClassLanguageContructs(qualifiedName, classPath);

                clc.setMethodDeclarations(classLanguageConstructs.getMethodDeclarations());
                clc.setMethodInvocations(classLanguageConstructs.getMethodInvocations());
                clc.setAttributes(classLanguageConstructs.getAttributes());
                clc.setAttributeCalls(classLanguageConstructs.getAttributeCalls());
                clc.setVariableDeclarations(classLanguageConstructs.getVariableDeclarations());
                clc.setVariableCalls(classLanguageConstructs.getVariableCalls());
                clc.setTypeDeclarations(classLanguageConstructs.getTypeDeclarations());
                clc.setAnnotationDeclarations(classLanguageConstructs.getAnnotationDeclarations());
                clc.setAnnotationUsages(classLanguageConstructs.getAnnotationUsages());

                classesLanguageConstructs.add(clc);
            }/* w w w.  j  a  v a 2  s .c  o  m*/

        }

    }

    return classesLanguageConstructs;
}

From source file:byke.DependencyAnalysis.java

License:Open Source License

private void populateNodes(IProgressMonitor monitor, ASTParser parser, ASTVisitor visitor,
        ICompilationUnit each) {/*  www.ja  v a2  s  .com*/
    monitor.subTask(each.getElementName());

    parser.setResolveBindings(true);
    parser.setSource(each);
    CompilationUnit node = (CompilationUnit) parser.createAST(monitor);
    node.accept(visitor);
    monitor.worked(1);
}

From source file:ca.ecliptical.pde.internal.ds.AnnotationProcessor.java

License:Open Source License

@Override
public void acceptAST(ICompilationUnit source, CompilationUnit ast) {
    HashSet<IDSModel> modelSet = new HashSet<IDSModel>();
    models.put(source, modelSet);//from w  w  w .  j  av  a  2 s .c o  m
    HashSet<DSAnnotationProblem> problems = new HashSet<DSAnnotationProblem>();

    ast.accept(new AnnotationVisitor(modelSet, errorLevel, problems));

    if (!problems.isEmpty()) {
        char[] filename = source.getResource().getFullPath().toString().toCharArray();
        for (DSAnnotationProblem problem : problems) {
            problem.setOriginatingFileName(filename);
            if (problem.getSourceStart() >= 0)
                problem.setSourceLineNumber(ast.getLineNumber(problem.getSourceStart()));
        }

        BuildContext buildContext = fileMap.get(source);
        if (buildContext != null)
            buildContext.recordNewProblems(problems.toArray(new CategorizedProblem[problems.size()]));
    }
}