public class ConfusingTernary extends AbstractRule
//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(); }
LOWEST_PRIORITY, PRIORITIES| Constructor and Description |
|---|
ConfusingTernary() |
| Modifier and Type | Method and Description |
|---|---|
java.lang.Object |
visit(ASTConditionalExpression node,
java.lang.Object data) |
java.lang.Object |
visit(ASTIfStatement node,
java.lang.Object data) |
addViolation, addViolation, addViolation, addViolationWithMessage, apply, getDeclaringType, importsPackage, isQualifiedName, 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, visitAlladdExample, addProperties, addProperty, addRuleChainVisit, asFixedMap, asFixedMap, end, equals, getBooleanProperties, getBooleanProperty, getBooleanProperty, getDescription, getDoubleProperties, getDoubleProperty, getDoubleProperty, getExample, getExamples, getExternalInfoUrl, getIntProperties, getIntProperty, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getRuleChainVisits, getRuleClass, getRuleSetName, getSince, getStringProperties, getStringProperty, getStringProperty, getTypeProperties, getTypeProperty, hashCode, hasProperty, include, propertiesByName, propertyDescriptorFor, setDescription, setExternalInfoUrl, setInclude, setMessage, setName, setPriority, setProperties, setProperty, setRuleClass, setRuleSetName, setSince, setUsesDFA, setUsesTypeResolution, start, usesDFA, usesRuleChain, usesTypeResolutionpublic java.lang.Object visit(ASTIfStatement node, java.lang.Object data)
visit in interface JavaParserVisitorvisit in class AbstractJavaRulepublic java.lang.Object visit(ASTConditionalExpression node, java.lang.Object data)
visit in interface JavaParserVisitorvisit in class AbstractJavaRule