Мое правило требует, чтобы я применял их только к методам без «get» как часть их имени. Другими словами, мои правила должны применяться только к методам, отличным от геттера в классе. Я знаю, чтобы ухватить все методы не-геттерные, я могу использоватьКак иметь вложенные условия для правил PMD Xpath
//MethodDeclarator[not(contains(@Image,'get'))]
Однако, я не знаю синтаксис о том, где я вставляю логику правил. Это как
//MethodDeclarator[
not(contains(@Image,'get'))
'Some Rule Statements'
]
Я видел использование. в начале инструкции внутри [] в некотором примере кода. для чего они используются?
В моем конкретном случае мне нужно объединить следующие части, но пока я не могу выполнить это.
Часть 1:
//PrimaryExpression[not(PrimarySuffix/Arguments)]
Часть 2:
//MethodDeclarator[not(contains(@Image,'get'))]
Часть 3:
//PrimaryExpression[PrimaryPrefix/@Label='this']
я прочитал больше о XPath этим утром и заставила их правильно комбинированные Теперь. Я также понимаю, что AST в PMD был более обманчивым, чем XML. Гораздо разумнее смотреть на RAW xml и отслеживать его с помощью XPath, чем следовать примерам в PMD doc. Мне не удалось понять, когда использовать/Name и @Image, потому что я не понял их места в XML. – ttback
@ttback: Да, я собирался указать, что вам нужно больше, чем XPath, чтобы узнать семантику PMD. –
Да, я подошел очень близко, чтобы найти один узел в наборе узлов. Если вы хотите, вы можете проверить мой последний вопрос. Без Intersect и знания о том, как использовать ось, становится очень неприятно знать, работаю ли я с набором узлов, с которым, как я думаю, я работаю. – ttback