existe-t-il un moyen (et si oui, comment?) De parcourir une requête XPath de manière récursive?Comment parcourir XPath récursivement?
J'ai un AST en Java avec le scénario suivant
@Relevant
public void foo() {
bar(true);
}
public void bar(boolean flag) {
assert flag;
}
Je veux trouver la méthode qui est annotées avec des thats (facile) « @Relevant » et vérifier si la méthode qui est appelée dans foo (barre ici) a une déclaration assert. Donc, a) comment extraire le nom de méthode 'barre' et demander via XPath la méthode appelée 'barre'? Et si «bar» appelle réellement «bla» dans lequel l'affirmation se produit?
espoir cela est compréhensible ...
Merci pour toute aide
On ne sait pas quel est le format AST. Je suppose que vous créez sa configuration XML. Si cela est correct, fournissez plus de détails sur l'appel de méthode et la définition des instructions assertes que vous utilisez. Je peux dire que j'ai joué avec des sources javac (disponibles à partir du projet OpenJDK) et qu'ils construisent AST par programme (au format JCTree.JCCompilationUnit - http://xref.jsecurity.net/openjdk-6/langtools/dd/d25/ classcom_1_1sun_1_1tools_1_1javac_1_1tree_1_1_j_c_tree_1_1_j_c_compilation_unit.html). Il est facile d'accomplir votre tâche via cette API, puis en utilisant JCTree.JCCompilationUnit.accept (Visitor). –
le but pour cela est en train de créer une règle XPath pour PMD. En raison des circonstances, je ne peux pas utiliser une implémentation Java pour cela. donc c'est soit possible dans XPath ou je dois oublier l'idée entière ;-) Merci de toute façon – Marty