Class UseStringIsEmptyRule

java.lang.Object
net.sourceforge.pmd.properties.AbstractPropertySource
net.sourceforge.pmd.lang.rule.AbstractRule
net.sourceforge.pmd.lang.java.rule.AbstractJavaRule
net.sourceforge.pmd.lang.java.rule.AbstractJavaRulechainRule
com.qulice.pmd.rules.UseStringIsEmptyRule
All Implemented Interfaces:
net.sourceforge.pmd.lang.ast.AstVisitor, net.sourceforge.pmd.lang.java.ast.JavaVisitor, net.sourceforge.pmd.lang.rule.Rule, net.sourceforge.pmd.properties.PropertySource

public final class UseStringIsEmptyRule extends net.sourceforge.pmd.lang.java.rule.AbstractJavaRulechainRule
Rule to prohibit use of String.length() when checking for empty string. String.isEmpty() should be used instead.

Only comparisons that have an exact isEmpty() equivalent are flagged. With length() on the left, those are == 0, != 0, > 0, <= 0, < 1 and >= 1; the same six are recognised when the operands are swapped. Comparisons against 1 such as length() == 1 or length() > 1 describe single-character strings and have no isEmpty() counterpart, so they are left alone.

Since:
0.18
  • Field Summary

    Fields inherited from interface net.sourceforge.pmd.lang.rule.Rule

    VIOLATION_SUPPRESS_REGEX_DESCRIPTOR, VIOLATION_SUPPRESS_XPATH_DESCRIPTOR
  • Constructor Summary

    Constructors
    Constructor
    Description
    Default constructor.
  • Method Summary

    Modifier and Type
    Method
    Description
    visit(net.sourceforge.pmd.lang.java.ast.ASTInfixExpression expr, Object data)
     

    Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRulechainRule

    buildTargetSelector, visitJavaNode

    Methods inherited from class net.sourceforge.pmd.lang.java.rule.AbstractJavaRule

    apply, visitNode

    Methods inherited from class net.sourceforge.pmd.lang.rule.AbstractRule

    addExample, asCtx, deepCopy, dysfunctionReason, end, equals, getDescription, getExamples, getExternalInfoUrl, getLanguage, getMaximumLanguageVersion, getMessage, getMinimumLanguageVersion, getName, getPriority, getPropertySourceType, getRuleClass, getRuleSetName, getSince, getTargetSelector, hashCode, isDeprecated, setDeprecated, setDescription, setExternalInfoUrl, setLanguage, setMaximumLanguageVersion, setMessage, setMinimumLanguageVersion, setName, setPriority, setRuleClass, setRuleSetName, setSince, start

    Methods inherited from class net.sourceforge.pmd.properties.AbstractPropertySource

    definePropertyDescriptor, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, isPropertyOverridden, setProperty

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface net.sourceforge.pmd.lang.ast.AstVisitor

    cannotVisit

    Methods inherited from interface net.sourceforge.pmd.lang.java.ast.JavaVisitor

    visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, visit, 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 interface net.sourceforge.pmd.properties.PropertySource

    definePropertyDescriptor, getOverriddenPropertiesByPropertyDescriptor, getOverriddenPropertyDescriptors, getPropertiesByPropertyDescriptor, getProperty, getPropertyDescriptor, getPropertyDescriptors, hasDescriptor, isPropertyOverridden, setProperty

    Methods inherited from interface net.sourceforge.pmd.lang.rule.Rule

    initialize
  • Constructor Details

    • UseStringIsEmptyRule

      public UseStringIsEmptyRule()
      Default constructor.
  • Method Details

    • visit

      public Object visit(net.sourceforge.pmd.lang.java.ast.ASTInfixExpression expr, Object data)