net.sourceforge.pmd.typeresolution.rules
Class CloneMethodMustImplementCloneable

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

public class CloneMethodMustImplementCloneable
extends AbstractRule

The method clone() should only be implemented if the class implements the Cloneable interface with the exception of a final method that only throws CloneNotSupportedException. This version uses PMD's type resolution facilities, and can detect if the class implements or extends a Cloneable class

Author:
acaplan

Field Summary
 
Fields inherited from interface net.sourceforge.pmd.Rule
LOWEST_PRIORITY, PRIORITIES
 
Constructor Summary
CloneMethodMustImplementCloneable()
           
 
Method Summary
 java.lang.Object visit(ASTClassOrInterfaceDeclaration node, java.lang.Object data)
           
 java.lang.Object visit(ASTMethodDeclaration node, java.lang.Object data)
           
 java.lang.Object visit(ASTMethodDeclarator 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, propertiesByName, 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
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CloneMethodMustImplementCloneable

public CloneMethodMustImplementCloneable()
Method Detail

visit

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

visit

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

visit

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