如何在PMD和XPath中获取本地变量声明的包?

时间:2011-01-31 12:58:02

标签: java xpath pmd

我的问题

我想为PMD创建一个自定义规则集,找到使用特定包的所有声明变量。它应该是 XPath 规则集,因为这对我来说更容易维护。

到目前为止我有什么

我能够找到import语句和变量。我正在使用 XPath 来查找声明:

//VariableDeclarator[../Type
                          /ReferenceType
                             /ClassOrInterfaceType
                                [@Image = 'ClassA']]

但是,这只匹配确切的类,但是我想检查这个类是否来自包my.package,我不知道如何获得它。

任何提示?

1 个答案:

答案 0 :(得分:1)

自从我使用PMD以来已经有一段时间了,我将从内存开始,但尝试使用XPath:

//ClassOrInterfaceDeclaration[preceding::PackageDeclaration/Name/@Image = 'my.package']//VariableDeclarator[etc..

基本上,它在XML中查找声明相应包的相关节点。就像我说的那样,这是来自相当古老的记忆,但希望它至少应该指向正确的方向。