|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectnet.sourceforge.pmd.AbstractPropertySource
net.sourceforge.pmd.lang.rule.AbstractRule
net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
net.sourceforge.pmd.lang.java.rule.design.ConfusingTernaryRule
public class ConfusingTernaryRule
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.AbstractPropertySource |
|---|
propertyDescriptors, propertyValuesByDescriptor |
| Fields inherited from interface net.sourceforge.pmd.Rule |
|---|
VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR |
| Constructor Summary | |
|---|---|
ConfusingTernaryRule()
|
|
| Method Summary | |
|---|---|
Object |
visit(ASTConditionalExpression node,
Object data)
|
Object |
visit(ASTIfStatement node,
Object data)
|
| Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule |
|---|
apply, getDeclaringType, importsPackage, isQualifiedName, isSuppressed, 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, visit, visit, visitAll |
| Methods inherited from class net.sourceforge.pmd.AbstractPropertySource |
|---|
copyPropertyDescriptors, copyPropertyValues, definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait |
| Methods inherited from interface net.sourceforge.pmd.PropertySource |
|---|
definePropertyDescriptor, dysfunctionReason, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, ignoredProperties, setProperty, useDefaultValueFor, usesDefaultValues |
| Constructor Detail |
|---|
public ConfusingTernaryRule()
| Method Detail |
|---|
public Object visit(ASTIfStatement node,
Object data)
visit in interface JavaParserVisitorvisit in class AbstractJavaRule
public Object visit(ASTConditionalExpression node,
Object data)
visit in interface JavaParserVisitorvisit in class AbstractJavaRule
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||