GhiOm GhiOm - 7 months ago 129
Java Question

Java : parse java source code, extract methods

I wish to parse java source code files, and extract the methods source code.

I would need a method like this :

/** Returns a map with key = method name ; value = method source code */
Map<String,String> getMethods(File javaFile);

Is there a simple way to achieve this, a library to help me build my method, etc. ?


Download the java parser from

You'll have to write some code. This code will invoke the parser... it will return you a CompilationUnit:

            InputStream in = null;
            CompilationUnit cu = null;
                    in = new SEDInputStream(filename);
                    cu = JavaParser.parse(in);
            catch(ParseException x)
                 // handle parse exceptions here.
            return cu;

Note: SEDInputStream is a subclass of input stream. You can use a FileInputStream if you want.

You'll have to create a visitor. Your visitor will be easy because you're only interested in methods:

  public class MethodVisitor extends VoidVisitorAdapter
        public void visit(MethodDeclaration n, Object arg)
             // extract method information here.
             // put in to hashmap

To invoke the visitor, do this:

  MethodVisitor visitor = new MethodVisitor();
  visitor.visit(cu, null);