title: Counting Methods declaration + Methods Calls in a class using JavaParser
body: <p>I'm trying to code rfc metric (Response for a Class), it counts the Method declarations + Method Calls.</p>
  
  <p>Method declarations works fine, but I got a problem at counting method calls using JavaParser API.</p>
  
  <p>Here is my code:</p>
  
  <pre><code>public class MethodPrinter {
  
      public static void main(String[] args) throws Exception {
          // creates an input stream for the file to be parsed
          FileInputStream in = new FileInputStream("D://test.java");
          CompilationUnit cu;
          try {
              // parse the file
              cu = JavaParser.parse(in);
          } finally {
              in.close();
          }
          // visit and print the methods names
          MethodVisitor MV =new MethodVisitor();
  
          cu.accept(new VoidVisitorAdapter&lt;Void&gt;(){
              @Override
              public void visit(final MethodCallExpr n, final Void arg){
                  System.out.println("method call :"+n);
                  super.visit(n, arg);
  
              }
          }, null);
      }
  }
  </code></pre>
  
  <p>test.java</p>
  
  <pre><code>package test;
  import java.util.*;
  
  public class ClassA 
  {
    private int test;
    private ClassB classB = new ClassB();
    public void doSomething(int t){
  
      System.out.println ( toString());
      int i= doSomethingBasedOnClassBBV(classB.toString());
    }
    protected void doSomethingBasedOnClassB(){
      System.out.println (classB.toString());
    }
  }
  
  public class ClassB 
  {
    private ClassA classA = new ClassA();
    public void doSomethingBasedOneClassA(){
      System.out.println (classA.toString());
    }
  
    private String toString(){
      return "classB";
    }
    private String toString(){
      return "classB";
    }
    public void doSomethingBasedOneClassA(){
      System.out.println (classA.toString());
    }
    protected void doSomethingBasedOnClassB(){
      System.out.println (classB.toString());
    }
  }
  </code></pre>
  
  <p>the result of that code:</p>
  
  <pre><code>*method call :System.out.println(toString())
  
  method call :toString()
  
  method call :doSomethingBasedOnClassBBV(classB.toString())
  
  method call :classB.toString()
  
  method call :System.out.println(classB.toString())
  
  method call :classB.toString()
  
  method call :System.out.println(classA.toString())
  
  method call :classA.toString()
  
  method call :System.out.println(classA.toString())
  
  method call :classA.toString()
  
  method call :System.out.println(classB.toString())
  
  method call :classB.toString()*
  </code></pre>
  
  <p>indeed, that code inspects method calls, but in my case I don't want it to count libraries method calls like System.out.println<code>(toString())</code>, I want it to count only <code>toString()</code>.  </p>
  
  <p>If you got a better code, or another API to use... any help is welcomed, thank you in advance.</p>