net.sourceforge.pmd.rules.strings
Class ConsecutiveLiteralAppends

java.lang.Object
  extended by net.sourceforge.pmd.ast.JavaParserVisitorAdapter
      extended by net.sourceforge.pmd.AbstractRule
          extended by net.sourceforge.pmd.rules.strings.ConsecutiveLiteralAppends
All Implemented Interfaces:
JavaParserVisitor, Rule

public class ConsecutiveLiteralAppends
extends AbstractRule

This rule finds concurrent calls to StringBuffer.append where String literals are used It would be much better to make these calls using one call to .append

example:

 StringBuffer buf = new StringBuffer();
 buf.append("Hello");
 buf.append(" ").append("World");
 

This would be more eloquently put as:

 StringBuffer buf = new StringBuffer();
 buf.append("Hello World");
 

The rule takes one parameter, threshold, which defines the lower limit of consecutive appends before a violation is created. The default is 1.


Field Summary
 
Fields inherited from interface net.sourceforge.pmd.Rule
LOWEST_PRIORITY, PRIORITIES
 
Constructor Summary
ConsecutiveLiteralAppends()
           
 
Method Summary
protected  java.util.Map<java.lang.String,PropertyDescriptor> propertiesByName()
          Return all the relevant properties for the receiver by overriding in subclasses as necessary.
 java.lang.Object visit(ASTVariableDeclaratorId node, java.lang.Object data)
           
 
Methods inherited from class net.sourceforge.pmd.AbstractRule
addExample, addProperties, addProperty, addRuleChainVisit, addViolation, addViolation, addViolation, addViolationWithMessage, apply, asFixedMap, asFixedMap, equals, getBooleanProperties, getBooleanProperty, getBooleanProperty, getDeclaringType, getDescription, getDoubleProperties, getDoubleProperty, getDoubleProperty, getExample, getExamples, getExternalInfoUrl, getIntProperties, getIntProperty, getIntProperty, getMessage, getName, getPriority, getPriorityName, getProperties, getRuleChainVisits, getRuleSetName, getStringProperties, getStringProperty, getStringProperty, getTypeProperties, getTypeProperty, hashCode, hasProperty, importsPackage, include, isQualifiedName, propertyDescriptorFor, setBooleanProperty, setDescription, setExternalInfoUrl, setInclude, setMessage, setName, setPriority, setProperties, setProperty, setRuleSetName, setUsesDFA, setUsesTypeResolution, usesDFA, usesRuleChain, usesTypeResolution, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ConsecutiveLiteralAppends

public ConsecutiveLiteralAppends()
Method Detail

visit

public java.lang.Object visit(ASTVariableDeclaratorId node,
                              java.lang.Object data)
Specified by:
visit in interface JavaParserVisitor
Overrides:
visit in class JavaParserVisitorAdapter

propertiesByName

protected java.util.Map<java.lang.String,PropertyDescriptor> propertiesByName()
Description copied from class: AbstractRule
Return all the relevant properties for the receiver by overriding in subclasses as necessary.

Overrides:
propertiesByName in class AbstractRule
Returns:
Map