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?