|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectnet.sourceforge.pmd.ast.JavaParserVisitorAdapter
net.sourceforge.pmd.AbstractRule
net.sourceforge.pmd.rules.design.ConfusingTernary
if (x != y) { diff(); } else { same(); } and
(!x ? diff() : same());.
//IfStatement[ Statement[2] and Expression[ EqualityExpression[@Image="!="] or UnaryExpressionNotPlusMinus[@Image="!"]]]but "&&" and "||" are difficult, since we need a match for all children instead of just one. This can be done by using a double-negative, e.g.:
not(*[not(matchme)])Still, XPath is unable to handle arbitrarily nested cases, since it lacks recursion, e.g.:
if (((x != !y)) || !(x)) { diff(); } else { same(); }
Field Summary |
Fields inherited from class net.sourceforge.pmd.AbstractRule |
description, example, externalInfoUrl, include, message, name, priority, properties, ruleSetName, usesDFA |
Fields inherited from interface net.sourceforge.pmd.Rule |
LOWEST_PRIORITY, PRIORITIES |
Constructor Summary | |
ConfusingTernary()
|
Method Summary | |
java.lang.Object |
visit(ASTConditionalExpression node,
java.lang.Object data)
|
java.lang.Object |
visit(ASTIfStatement node,
java.lang.Object data)
|
Methods inherited from class net.sourceforge.pmd.AbstractRule |
addProperties, addProperty, addViolation, addViolation, addViolation, addViolationWithMessage, apply, equals, getBooleanProperty, getDeclaringType, getDescription, getDoubleProperty, getExample, getExternalInfoUrl, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getRuleSetName, getStringProperty, hashCode, hasProperty, include, setDescription, setExample, setExternalInfoUrl, setInclude, setMessage, setName, setPriority, setRuleSetName, setUsesDFA, usesDFA, visitAll |
Methods inherited from class net.sourceforge.pmd.ast.JavaParserVisitorAdapter |
visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit |
Methods inherited from class java.lang.Object |
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public ConfusingTernary()
Method Detail |
public java.lang.Object visit(ASTIfStatement node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
public java.lang.Object visit(ASTConditionalExpression node, java.lang.Object data)
visit
in interface JavaParserVisitor
visit
in class JavaParserVisitorAdapter
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |