2016-11-03 4 views
0

Ich konvertiere eine einfache statische Analyse-Regel, die gegen Bytecode implementiert wurde und ASM verwendet, um mit SonarQube zu arbeiten.Suche nach allen Methodenaufrufen mit dem Baumbesucher

Ich habe eine Unterklasse von BaseTreeVisitor erstellt und überschreiben die visitMethodInvocation(MethodInvocationTree tree) Methode.

Wenn es eine einfache Methode, wie

public void someMethod() { 
    org.fest.assertions.Assertions.assertThat(true); 
} 

parst Der vollständig qualifizierte Name und Art des Verfahrens genannt ist leicht von der MethodInvocationTree abrufbaren.

jedoch für verkettete Methodenaufrufe wie

public void someMethod() { 
    org.fest.assertions.Assertions.assertThat(true).isEqualTo(true); 
} 

Nur der Abschluss isEqualTo Methodenaufruf sichtbar ist.

Wie erkenne ich das assertThat auch genannt?

Das Auffinden von Methodenaufrufen mit ASM war trivial. Gibt es einen anderen Teil der Sonar-API, die ich anstelle eines TreeVisitor verwenden sollte?

Antwort

0

Die Frage war habe ich selbst gemacht, wenn

super.visitMethodInvocation(mit); 

nicht in einer außer Kraft gesetzt visitMethodInvocation nachfolgenden Aufrufen genannt wird, sind nicht zu sehen.

Verwandte Themen