diff --git a/pmd/regress/test/net/sourceforge/pmd/ast/ASTFormalParameterTest.java b/pmd/regress/test/net/sourceforge/pmd/ast/ASTFormalParameterTest.java index 54ea479a46..5263cf507d 100644 --- a/pmd/regress/test/net/sourceforge/pmd/ast/ASTFormalParameterTest.java +++ b/pmd/regress/test/net/sourceforge/pmd/ast/ASTFormalParameterTest.java @@ -18,7 +18,7 @@ public class ASTFormalParameterTest extends ParserTst { Set ops = getNodes(new TargetJDK1_5(), ASTFormalParameter.class, TEST1); for (Iterator iter = ops.iterator(); iter.hasNext();) { ASTFormalParameter b = (ASTFormalParameter) iter.next(); - ASTVariableDeclaratorId variableDeclId = (ASTVariableDeclaratorId)b.getFirstChildOfType(ASTVariableDeclaratorId.class); + ASTVariableDeclaratorId variableDeclId = b.getFirstChildOfType(ASTVariableDeclaratorId.class); if (!"x".equals(variableDeclId.getImage())) { assertTrue(b.isVarargs()); nrOfVarArgs++; diff --git a/pmd/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java b/pmd/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java index ed7245b8c6..4dd40b1c42 100644 --- a/pmd/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java +++ b/pmd/regress/test/net/sourceforge/pmd/jsp/ast/JspDocStyleTest.java @@ -86,19 +86,19 @@ public class JspDocStyleTest extends AbstractJspNodesTst { assertEquals("Correct attribute name expected!", "foo", attr.getName()); assertEquals("Correct attribute value expected!", - "CREATE", ((ASTAttributeValue) attr.getFirstChildOfType(ASTAttributeValue.class)).getImage()); + "CREATE", attr.getFirstChildOfType(ASTAttributeValue.class).getImage()); attr = attrsList.get(1); assertEquals("Correct attribute name expected!", "href", attr.getName()); assertEquals("Correct attribute value expected!", - "#", ((ASTAttributeValue) attr.getFirstChildOfType(ASTAttributeValue.class)).getImage()); + "#", attr.getFirstChildOfType(ASTAttributeValue.class).getImage()); attr = attrsList.get(2); assertEquals("Correct attribute name expected!", "something", attr.getName()); assertEquals("Correct attribute value expected!", - "#yes#", ((ASTAttributeValue) attr.getFirstChildOfType(ASTAttributeValue.class)).getImage()); + "#yes#", attr.getFirstChildOfType(ASTAttributeValue.class).getImage()); } /** diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTFieldDeclaration.java b/pmd/src/net/sourceforge/pmd/ast/ASTFieldDeclaration.java index 9677dcd0b4..090f1dee5b 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTFieldDeclaration.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTFieldDeclaration.java @@ -126,7 +126,7 @@ public class ASTFieldDeclaration extends AccessNode implements Dimensionable { * @return a String representing the name of the variable */ public String getVariableName() { - ASTVariableDeclaratorId decl = (ASTVariableDeclaratorId) getFirstChildOfType(ASTVariableDeclaratorId.class); + ASTVariableDeclaratorId decl = getFirstChildOfType(ASTVariableDeclaratorId.class); if (decl != null) { return decl.getImage(); } diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTMethodDeclaration.java b/pmd/src/net/sourceforge/pmd/ast/ASTMethodDeclaration.java index 1f63465bd4..1f8e34e9c8 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTMethodDeclaration.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTMethodDeclaration.java @@ -29,7 +29,7 @@ public class ASTMethodDeclaration extends AccessNode { * @return a String representing the name of the method */ public String getMethodName() { - ASTMethodDeclarator md = (ASTMethodDeclarator) getFirstChildOfType(ASTMethodDeclarator.class); + ASTMethodDeclarator md = getFirstChildOfType(ASTMethodDeclarator.class); if (md != null) return md.getImage(); return null; @@ -63,11 +63,11 @@ public class ASTMethodDeclaration extends AccessNode { } public boolean isVoid() { - return ((ASTResultType) getFirstChildOfType(ASTResultType.class)).isVoid(); + return getFirstChildOfType(ASTResultType.class).isVoid(); } public ASTResultType getResultType() { - return (ASTResultType) getFirstChildOfType(ASTResultType.class); + return getFirstChildOfType(ASTResultType.class); } public ASTBlock getBlock() { diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTPrimarySuffix.java b/pmd/src/net/sourceforge/pmd/ast/ASTPrimarySuffix.java index ba5f2ae8db..88e8e22fc8 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTPrimarySuffix.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTPrimarySuffix.java @@ -34,7 +34,7 @@ public class ASTPrimarySuffix extends SimpleJavaNode { if (!this.isArguments()) { throw new RuntimeException("ASTPrimarySuffix.getArgumentCount called, but this is not a method call"); } - return ((ASTArguments)this.getFirstChildOfType(ASTArguments.class)).getArgumentCount(); + return this.getFirstChildOfType(ASTArguments.class).getArgumentCount(); } public void dump(String prefix) { diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTThrowStatement.java b/pmd/src/net/sourceforge/pmd/ast/ASTThrowStatement.java index 1159566ed9..77805c8428 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTThrowStatement.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTThrowStatement.java @@ -31,7 +31,7 @@ public class ASTThrowStatement extends SimpleJavaNode { * @return the image of the first ASTClassOrInterfaceType node found or null */ public final String getFirstClassOrInterfaceTypeImage() { - final ASTClassOrInterfaceType t = (ASTClassOrInterfaceType) getFirstChildOfType(ASTClassOrInterfaceType.class); + final ASTClassOrInterfaceType t = getFirstChildOfType(ASTClassOrInterfaceType.class); return t == null ? null : t.getImage(); } } diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTType.java b/pmd/src/net/sourceforge/pmd/ast/ASTType.java index 6670fbc11f..ce4c5876b4 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTType.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTType.java @@ -19,11 +19,11 @@ public class ASTType extends SimpleJavaNode { } public String getTypeImage() { - ASTPrimitiveType prim = (ASTPrimitiveType) getFirstChildOfType(ASTPrimitiveType.class); + ASTPrimitiveType prim = getFirstChildOfType(ASTPrimitiveType.class); if (prim != null) { return prim.getImage(); } - return ((ASTClassOrInterfaceType) getFirstChildOfType(ASTClassOrInterfaceType.class)).getImage(); + return getFirstChildOfType(ASTClassOrInterfaceType.class).getImage(); } public int getArrayDepth() { diff --git a/pmd/src/net/sourceforge/pmd/ast/ASTVariableDeclaratorId.java b/pmd/src/net/sourceforge/pmd/ast/ASTVariableDeclaratorId.java index d63fd49795..191058cf32 100644 --- a/pmd/src/net/sourceforge/pmd/ast/ASTVariableDeclaratorId.java +++ b/pmd/src/net/sourceforge/pmd/ast/ASTVariableDeclaratorId.java @@ -69,7 +69,7 @@ public class ASTVariableDeclaratorId extends SimpleJavaNode { return ((ASTFormalParameter) jjtGetParent()).getTypeNode(); } else if (jjtGetParent().jjtGetParent() instanceof ASTLocalVariableDeclaration || jjtGetParent().jjtGetParent() instanceof ASTFieldDeclaration) { SimpleNode n = (SimpleNode) jjtGetParent().jjtGetParent(); - return (ASTType) n.getFirstChildOfType(ASTType.class); + return n.getFirstChildOfType(ASTType.class); } throw new RuntimeException("Don't know how to get the type for anything other than ASTLocalVariableDeclaration/ASTFormalParameter/ASTFieldDeclaration"); } diff --git a/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java b/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java index 5cb5e21d5d..192164c16f 100644 --- a/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java +++ b/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java @@ -289,17 +289,17 @@ public abstract class SimpleNode implements Node { * @param childType class which you want to find. * @return Node of type childType. Returns null if none found. */ - public Node getFirstChildOfType(Class childType) { + public T getFirstChildOfType(Class childType) { return getFirstChildOfType(childType, this); } - private Node getFirstChildOfType(Class childType, Node node) { + private T getFirstChildOfType(Class childType, Node node) { for (int i = 0; i < node.jjtGetNumChildren(); i++) { Node n = node.jjtGetChild(i); if (n != null) { if (n.getClass().equals(childType)) - return n; - Node n2 = getFirstChildOfType(childType, n); + return (T) n; + T n2 = getFirstChildOfType(childType, n); if (n2 != null) return n2; } diff --git a/pmd/src/net/sourceforge/pmd/dfa/pathfinder/CurrentPath.java b/pmd/src/net/sourceforge/pmd/dfa/pathfinder/CurrentPath.java index 04d92c72a4..fa99bd4bbc 100644 --- a/pmd/src/net/sourceforge/pmd/dfa/pathfinder/CurrentPath.java +++ b/pmd/src/net/sourceforge/pmd/dfa/pathfinder/CurrentPath.java @@ -18,7 +18,7 @@ public class CurrentPath { return list.size(); } - public Iterator iterator() { + public Iterator iterator() { return list.iterator(); } diff --git a/pmd/src/net/sourceforge/pmd/rules/AbstractInefficientZeroCheck.java b/pmd/src/net/sourceforge/pmd/rules/AbstractInefficientZeroCheck.java index 527deb40a5..b48551b696 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AbstractInefficientZeroCheck.java +++ b/pmd/src/net/sourceforge/pmd/rules/AbstractInefficientZeroCheck.java @@ -9,7 +9,6 @@ import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.symboltable.NameOccurrence; -import java.util.Iterator; import java.util.List; /** @@ -34,9 +33,8 @@ public abstract class AbstractInefficientZeroCheck extends AbstractRule { return data; } - List declars = node.getUsages(); - for (Iterator i = declars.iterator(); i.hasNext();) { - NameOccurrence occ = (NameOccurrence) i.next(); + List declars = node.getUsages(); + for (NameOccurrence occ: declars) { if (!isTargetMethod(occ)) { continue; } diff --git a/pmd/src/net/sourceforge/pmd/rules/AbstractPoorMethodCall.java b/pmd/src/net/sourceforge/pmd/rules/AbstractPoorMethodCall.java index a35d912bd9..948897b394 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AbstractPoorMethodCall.java +++ b/pmd/src/net/sourceforge/pmd/rules/AbstractPoorMethodCall.java @@ -8,7 +8,6 @@ import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.symboltable.NameOccurrence; -import java.util.Iterator; import java.util.List; /** @@ -94,8 +93,7 @@ public abstract class AbstractPoorMethodCall extends AbstractRule { return data; } - for (Iterator i = node.getUsages().iterator(); i.hasNext();) { - NameOccurrence occ = (NameOccurrence) i.next(); + for (NameOccurrence occ: node.getUsages()) { if (isNotedMethod(occ.getNameForWhichThisIsAQualifier())) { SimpleNode parent = (SimpleNode)occ.getLocation().jjtGetParent().jjtGetParent(); if (parent instanceof ASTPrimaryExpression) { diff --git a/pmd/src/net/sourceforge/pmd/rules/AccessorClassGeneration.java b/pmd/src/net/sourceforge/pmd/rules/AccessorClassGeneration.java index 0d6adab6ee..68a598d8f2 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AccessorClassGeneration.java +++ b/pmd/src/net/sourceforge/pmd/rules/AccessorClassGeneration.java @@ -68,7 +68,7 @@ public class AccessorClassGeneration extends AbstractRule { m_Instantiations.add(ad); } - public Iterator getInstantiationIterator() { + public Iterator getInstantiationIterator() { return m_Instantiations.iterator(); } @@ -76,7 +76,7 @@ public class AccessorClassGeneration extends AbstractRule { m_PrivateConstructors.add(cd); } - public Iterator getPrivateConstructorIterator() { + public Iterator getPrivateConstructorIterator() { return m_PrivateConstructors.iterator(); } @@ -88,7 +88,7 @@ public class AccessorClassGeneration extends AbstractRule { m_ClassQualifyingNames.add(name); } - public List getClassQualifyingNamesList() { + public List getClassQualifyingNamesList() { return m_ClassQualifyingNames; } } @@ -99,7 +99,7 @@ public class AccessorClassGeneration extends AbstractRule { private ASTAllocationExpression m_ASTAllocationExpression; private boolean isArray; - public AllocData(ASTAllocationExpression node, String aPackageName, List classQualifyingNames) { + public AllocData(ASTAllocationExpression node, String aPackageName, List classQualifyingNames) { if (node.jjtGetChild(1) instanceof ASTArguments) { ASTArguments aa = (ASTArguments) node.jjtGetChild(1); m_ArgumentCount = aa.getArgumentCount(); @@ -114,8 +114,8 @@ public class AccessorClassGeneration extends AbstractRule { //strip off outer class names //try OuterClass, then try OuterClass.InnerClass, then try OuterClass.InnerClass.InnerClass2, etc... String findName = ""; - for (ListIterator li = classQualifyingNames.listIterator(classQualifyingNames.size()); li.hasPrevious();) { - String aName = (String) li.previous(); + for (ListIterator li = classQualifyingNames.listIterator(classQualifyingNames.size()); li.hasPrevious();) { + String aName = li.previous(); findName = aName + "." + findName; if (m_Name.startsWith(findName)) { //strip off name and exit @@ -244,15 +244,15 @@ public class AccessorClassGeneration extends AbstractRule { private void processRule(Object ctx) { //check constructors of outerIterator against allocations of innerIterator for (ClassData outerDataSet : classDataList) { - for (Iterator constructors = outerDataSet.getPrivateConstructorIterator(); constructors.hasNext();) { - ASTConstructorDeclaration cd = (ASTConstructorDeclaration) constructors.next(); + for (Iterator constructors = outerDataSet.getPrivateConstructorIterator(); constructors.hasNext();) { + ASTConstructorDeclaration cd = constructors.next(); for (ClassData innerDataSet : classDataList) { if (outerDataSet == innerDataSet) { continue; } - for (Iterator allocations = innerDataSet.getInstantiationIterator(); allocations.hasNext();) { - AllocData ad = (AllocData) allocations.next(); + for (Iterator allocations = innerDataSet.getInstantiationIterator(); allocations.hasNext();) { + AllocData ad = allocations.next(); //if the constructor matches the instantiation //flag the instantiation as a generator of an extra class if (outerDataSet.getClassName().equals(ad.getName()) && (cd.getParameterCount() == ad.getArgumentCount())) { diff --git a/pmd/src/net/sourceforge/pmd/rules/AvoidFieldNameMatchingMethodName.java b/pmd/src/net/sourceforge/pmd/rules/AvoidFieldNameMatchingMethodName.java index c58feb416d..b7348fc5be 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AvoidFieldNameMatchingMethodName.java +++ b/pmd/src/net/sourceforge/pmd/rules/AvoidFieldNameMatchingMethodName.java @@ -8,7 +8,6 @@ import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; import net.sourceforge.pmd.ast.ASTFieldDeclaration; import net.sourceforge.pmd.ast.ASTMethodDeclaration; -import java.util.Iterator; import java.util.List; public class AvoidFieldNameMatchingMethodName extends AbstractRule { @@ -27,9 +26,8 @@ public class AvoidFieldNameMatchingMethodName extends AbstractRule { varName = varName.toLowerCase(); ASTClassOrInterfaceDeclaration cl = node.getFirstParentOfType(ASTClassOrInterfaceDeclaration.class); if (cl != null) { - List methods = cl.findChildrenOfType(ASTMethodDeclaration.class); - for (Iterator it = methods.iterator(); it.hasNext();) { - ASTMethodDeclaration m = (ASTMethodDeclaration) it.next(); + List methods = cl.findChildrenOfType(ASTMethodDeclaration.class); + for (ASTMethodDeclaration m: methods) { //Make sure we are comparing fields and methods inside same type if (fieldDeclaringType.equals(getDeclaringType(m))) { String n = m.getMethodName(); diff --git a/pmd/src/net/sourceforge/pmd/rules/AvoidReassigningParameters.java b/pmd/src/net/sourceforge/pmd/rules/AvoidReassigningParameters.java index 3d8b1e65ab..dc19f0806b 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AvoidReassigningParameters.java +++ b/pmd/src/net/sourceforge/pmd/rules/AvoidReassigningParameters.java @@ -3,7 +3,6 @@ */ package net.sourceforge.pmd.rules; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -15,14 +14,11 @@ import net.sourceforge.pmd.symboltable.VariableNameDeclaration; public class AvoidReassigningParameters extends AbstractRule { public Object visit(ASTMethodDeclarator node, Object data) { - Map params = node.getScope().getVariableDeclarations(); - for (Iterator i = params.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - - VariableNameDeclaration decl = (VariableNameDeclaration) entry.getKey(); - List usages = (List) entry.getValue(); - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence occ = (NameOccurrence) j.next(); + Map> params = node.getScope().getVariableDeclarations(); + for (Map.Entry> entry: params.entrySet()) { + VariableNameDeclaration decl = entry.getKey(); + List usages = entry.getValue(); + for (NameOccurrence occ: usages) { if ((occ.isOnLeftHandSide() || occ.isSelfAssignment()) && occ.getNameForWhichThisIsAQualifier() == null && (!decl.isArray() || occ.getLocation().jjtGetParent().jjtGetParent().jjtGetNumChildren() == 1)) diff --git a/pmd/src/net/sourceforge/pmd/rules/BeanMembersShouldSerializeRule.java b/pmd/src/net/sourceforge/pmd/rules/BeanMembersShouldSerializeRule.java index f5576307e9..8e20cdf99e 100644 --- a/pmd/src/net/sourceforge/pmd/rules/BeanMembersShouldSerializeRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/BeanMembersShouldSerializeRule.java @@ -5,7 +5,6 @@ package net.sourceforge.pmd.rules; import java.util.ArrayList; import java.util.Arrays; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -67,10 +66,9 @@ public class BeanMembersShouldSerializeRule extends AbstractRule { Arrays.sort(methNameArray); - Map vars = node.getScope().getVariableDeclarations(); - for (Iterator i = vars.keySet().iterator(); i.hasNext();) { - VariableNameDeclaration decl = (VariableNameDeclaration) i.next(); - if (((List) vars.get(decl)).isEmpty() || decl.getAccessNodeParent().isTransient() || decl.getAccessNodeParent().isStatic()) { + Map> vars = node.getScope().getVariableDeclarations(); + for (VariableNameDeclaration decl: vars.keySet()) { + if (vars.get(decl).isEmpty() || decl.getAccessNodeParent().isTransient() || decl.getAccessNodeParent().isStatic()) { continue; } String varName = trimIfPrefix(decl.getImage()); diff --git a/pmd/src/net/sourceforge/pmd/rules/CloseResource.java b/pmd/src/net/sourceforge/pmd/rules/CloseResource.java index 8fd6f5f204..1402ee58cc 100644 --- a/pmd/src/net/sourceforge/pmd/rules/CloseResource.java +++ b/pmd/src/net/sourceforge/pmd/rules/CloseResource.java @@ -20,7 +20,6 @@ import net.sourceforge.pmd.properties.StringProperty; import java.util.ArrayList; import java.util.HashSet; -import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; @@ -70,12 +69,11 @@ public class CloseResource extends AbstractRule { } public Object visit(ASTMethodDeclaration node, Object data) { - List vars = node.findChildrenOfType(ASTLocalVariableDeclaration.class); + List vars = node.findChildrenOfType(ASTLocalVariableDeclaration.class); List ids = new ArrayList(); // find all variable references to Connection objects - for (Iterator it = vars.iterator(); it.hasNext();) { - ASTLocalVariableDeclaration var = (ASTLocalVariableDeclaration) it.next(); + for (ASTLocalVariableDeclaration var: vars) { ASTType type = var.getTypeNode(); if (type.jjtGetChild(0) instanceof ASTReferenceType) { diff --git a/pmd/src/net/sourceforge/pmd/rules/CyclomaticComplexity.java b/pmd/src/net/sourceforge/pmd/rules/CyclomaticComplexity.java index d03b41a15f..a2bf083dbc 100644 --- a/pmd/src/net/sourceforge/pmd/rules/CyclomaticComplexity.java +++ b/pmd/src/net/sourceforge/pmd/rules/CyclomaticComplexity.java @@ -68,7 +68,7 @@ public class CyclomaticComplexity extends AbstractRule { } public Object visit(ASTIfStatement node, Object data) { - int boolCompIf = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompIf = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); // If statement always has a complexity of at least 1 boolCompIf++; @@ -84,7 +84,7 @@ public class CyclomaticComplexity extends AbstractRule { } public Object visit(ASTForStatement node, Object data) { - int boolCompFor = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompFor = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); // For statement always has a complexity of at least 1 boolCompFor++; @@ -94,7 +94,7 @@ public class CyclomaticComplexity extends AbstractRule { } public Object visit(ASTDoStatement node, Object data) { - int boolCompDo = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompDo = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); // Do statement always has a complexity of at least 1 boolCompDo++; @@ -106,7 +106,7 @@ public class CyclomaticComplexity extends AbstractRule { public Object visit(ASTSwitchStatement node, Object data) { Entry entry = entryStack.peek(); - int boolCompSwitch = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompSwitch = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); entry.bumpDecisionPoints( boolCompSwitch ); int childCount = node.jjtGetNumChildren(); @@ -129,7 +129,7 @@ public class CyclomaticComplexity extends AbstractRule { } public Object visit(ASTWhileStatement node, Object data) { - int boolCompWhile = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompWhile = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); // While statement always has a complexity of at least 1 boolCompWhile++; @@ -140,7 +140,7 @@ public class CyclomaticComplexity extends AbstractRule { public Object visit(ASTConditionalExpression node, Object data) { if ( node.isTernary() ) { - int boolCompTern = NpathComplexity.sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompTern = NpathComplexity.sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); // Ternary statement always has a complexity of at least 1 boolCompTern++; diff --git a/pmd/src/net/sourceforge/pmd/rules/MethodWithSameNameAsEnclosingClass.java b/pmd/src/net/sourceforge/pmd/rules/MethodWithSameNameAsEnclosingClass.java index 73e42ff1cb..d47cc97025 100644 --- a/pmd/src/net/sourceforge/pmd/rules/MethodWithSameNameAsEnclosingClass.java +++ b/pmd/src/net/sourceforge/pmd/rules/MethodWithSameNameAsEnclosingClass.java @@ -4,15 +4,13 @@ import net.sourceforge.pmd.AbstractRule; import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; import net.sourceforge.pmd.ast.ASTMethodDeclarator; -import java.util.Iterator; import java.util.List; public class MethodWithSameNameAsEnclosingClass extends AbstractRule { public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - List methods = node.findChildrenOfType(ASTMethodDeclarator.class); - for (Iterator i = methods.iterator(); i.hasNext();) { - ASTMethodDeclarator m = (ASTMethodDeclarator) i.next(); + List methods = node.findChildrenOfType(ASTMethodDeclarator.class); + for (ASTMethodDeclarator m: methods) { if (m.hasImageEqualTo(node.getImage())) { addViolation(data, m); } diff --git a/pmd/src/net/sourceforge/pmd/rules/MoreThanOneLogger.java b/pmd/src/net/sourceforge/pmd/rules/MoreThanOneLogger.java index 3b04f44dc5..6679ba006a 100644 --- a/pmd/src/net/sourceforge/pmd/rules/MoreThanOneLogger.java +++ b/pmd/src/net/sourceforge/pmd/rules/MoreThanOneLogger.java @@ -45,7 +45,7 @@ public class MoreThanOneLogger extends AbstractRule { if (count > 1) { return super.visit(node, data); } - SimpleNode type = (SimpleNode) ((SimpleNode) node.jjtGetParent()).getFirstChildOfType(ASTType.class); + SimpleNode type = ((SimpleNode) node.jjtGetParent()).getFirstChildOfType(ASTType.class); if (type != null) { SimpleNode reftypeNode = (SimpleNode) type.jjtGetChild(0); if (reftypeNode instanceof ASTReferenceType) { diff --git a/pmd/src/net/sourceforge/pmd/rules/OverrideBothEqualsAndHashcode.java b/pmd/src/net/sourceforge/pmd/rules/OverrideBothEqualsAndHashcode.java index 82e11ffac0..2aaf8f5adf 100644 --- a/pmd/src/net/sourceforge/pmd/rules/OverrideBothEqualsAndHashcode.java +++ b/pmd/src/net/sourceforge/pmd/rules/OverrideBothEqualsAndHashcode.java @@ -58,11 +58,10 @@ public class OverrideBothEqualsAndHashcode extends AbstractRule { for (int ix = 0; ix < node.jjtGetNumChildren(); ix++) { SimpleNode sn = (SimpleNode) node.jjtGetChild(ix); if (sn.getClass().equals(ASTFormalParameters.class)) { - List allParams = ((ASTFormalParameters) sn).findChildrenOfType(ASTFormalParameter.class); - for (int i = 0; i < allParams.size(); i++) { + List allParams = ((ASTFormalParameters) sn).findChildrenOfType(ASTFormalParameter.class); + for (ASTFormalParameter formalParam: allParams) { iFormalParams++; - ASTFormalParameter formalParam = (ASTFormalParameter) allParams.get(i); - ASTClassOrInterfaceType param = (ASTClassOrInterfaceType) formalParam.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTClassOrInterfaceType param = formalParam.getFirstChildOfType(ASTClassOrInterfaceType.class); if (param != null) { paramName = param.getImage(); } diff --git a/pmd/src/net/sourceforge/pmd/rules/SymbolTableTestRule.java b/pmd/src/net/sourceforge/pmd/rules/SymbolTableTestRule.java index 1042847b18..3c108ce1fe 100644 --- a/pmd/src/net/sourceforge/pmd/rules/SymbolTableTestRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/SymbolTableTestRule.java @@ -9,14 +9,11 @@ import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.symboltable.NameOccurrence; -import java.util.Iterator; - public class SymbolTableTestRule extends AbstractRule { public Object visit(ASTFieldDeclaration node,Object data) { ASTVariableDeclaratorId declaration = node.findChildrenOfType(ASTVariableDeclaratorId.class).get(0); - for (Iterator iter = declaration.getUsages().iterator();iter.hasNext();) { - NameOccurrence no = (NameOccurrence)iter.next(); + for (NameOccurrence no: declaration.getUsages()) { SimpleNode location = no.getLocation(); System.out.println(declaration.getImage() + " is used here: " + location.getImage()); } diff --git a/pmd/src/net/sourceforge/pmd/rules/UnusedFormalParameterRule.java b/pmd/src/net/sourceforge/pmd/rules/UnusedFormalParameterRule.java index bcbb0f3166..987dd4fcd9 100644 --- a/pmd/src/net/sourceforge/pmd/rules/UnusedFormalParameterRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/UnusedFormalParameterRule.java @@ -12,7 +12,6 @@ import net.sourceforge.pmd.ast.SimpleNode; import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -36,11 +35,10 @@ public class UnusedFormalParameterRule extends AbstractRule { private void check(SimpleNode node, Object data) { Node parent = node.jjtGetParent().jjtGetParent().jjtGetParent(); if (parent instanceof ASTClassOrInterfaceDeclaration && !((ASTClassOrInterfaceDeclaration) parent).isInterface()) { - Map vars = node.getScope().getVariableDeclarations(); - for (Iterator i = vars.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration nameDecl = (VariableNameDeclaration) entry.getKey(); - if (actuallyUsed(nameDecl, (List) entry.getValue())) { + Map> vars = node.getScope().getVariableDeclarations(); + for (Map.Entry> entry: vars.entrySet()) { + VariableNameDeclaration nameDecl = entry.getKey(); + if (actuallyUsed(nameDecl, entry.getValue())) { continue; } addViolation(data, node, new Object[]{node instanceof ASTMethodDeclaration ? "method" : "constructor", nameDecl.getImage()}); @@ -48,9 +46,8 @@ public class UnusedFormalParameterRule extends AbstractRule { } } - private boolean actuallyUsed(VariableNameDeclaration nameDecl, List usages) { - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence occ = (NameOccurrence) j.next(); + private boolean actuallyUsed(VariableNameDeclaration nameDecl, List usages) { + for (NameOccurrence occ: usages) { if (occ.isOnLeftHandSide()) { if (nameDecl.isArray() && occ.getLocation().jjtGetParent().jjtGetParent().jjtGetNumChildren() > 1) { // array element access diff --git a/pmd/src/net/sourceforge/pmd/rules/UnusedLocalVariableRule.java b/pmd/src/net/sourceforge/pmd/rules/UnusedLocalVariableRule.java index 144f44ec48..afe37e260b 100644 --- a/pmd/src/net/sourceforge/pmd/rules/UnusedLocalVariableRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/UnusedLocalVariableRule.java @@ -9,7 +9,6 @@ import net.sourceforge.pmd.ast.ASTVariableDeclarator; import net.sourceforge.pmd.ast.ASTVariableDeclaratorId; import net.sourceforge.pmd.symboltable.NameOccurrence; -import java.util.Iterator; import java.util.List; public class UnusedLocalVariableRule extends AbstractRule { @@ -30,9 +29,8 @@ public class UnusedLocalVariableRule extends AbstractRule { return data; } - private boolean actuallyUsed(List usages) { - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence occ = (NameOccurrence) j.next(); + private boolean actuallyUsed(List usages) { + for (NameOccurrence occ: usages) { if (occ.isOnLeftHandSide()) { continue; } else { diff --git a/pmd/src/net/sourceforge/pmd/rules/UnusedPrivateFieldRule.java b/pmd/src/net/sourceforge/pmd/rules/UnusedPrivateFieldRule.java index 2a3d9457b3..507c1ea751 100644 --- a/pmd/src/net/sourceforge/pmd/rules/UnusedPrivateFieldRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/UnusedPrivateFieldRule.java @@ -8,30 +8,27 @@ import net.sourceforge.pmd.ast.ASTClassOrInterfaceDeclaration; import net.sourceforge.pmd.symboltable.NameOccurrence; import net.sourceforge.pmd.symboltable.VariableNameDeclaration; -import java.util.Iterator; import java.util.List; import java.util.Map; public class UnusedPrivateFieldRule extends AbstractRule { public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - Map vars = node.getScope().getVariableDeclarations(); - for (Iterator i = vars.entrySet().iterator(); i.hasNext();) { - Map.Entry entry = (Map.Entry) i.next(); - VariableNameDeclaration decl = (VariableNameDeclaration) entry.getKey(); + Map> vars = node.getScope().getVariableDeclarations(); + for (Map.Entry> entry: vars.entrySet()) { + VariableNameDeclaration decl = entry.getKey(); if (!decl.getAccessNodeParent().isPrivate() || isOK(decl.getImage())) { continue; } - if (!actuallyUsed((List) entry.getValue())) { + if (!actuallyUsed(entry.getValue())) { addViolation(data, decl.getNode(), decl.getImage()); } } return super.visit(node, data); } - private boolean actuallyUsed(List usages) { - for (Iterator j = usages.iterator(); j.hasNext();) { - NameOccurrence nameOccurrence = (NameOccurrence) j.next(); + private boolean actuallyUsed(List usages) { + for (NameOccurrence nameOccurrence: usages) { if (!nameOccurrence.isOnLeftHandSide()) { return true; } diff --git a/pmd/src/net/sourceforge/pmd/rules/UselessAssignment.java b/pmd/src/net/sourceforge/pmd/rules/UselessAssignment.java index 0df1ce546d..c006e62dcc 100644 --- a/pmd/src/net/sourceforge/pmd/rules/UselessAssignment.java +++ b/pmd/src/net/sourceforge/pmd/rules/UselessAssignment.java @@ -57,9 +57,9 @@ public class UselessAssignment extends AbstractRule implements Executable { public void execute(CurrentPath path) { Map hash = new HashMap(); //System.out.println("path size is " + path.size()); - for (Iterator i = path.iterator(); i.hasNext();) { + for (Iterator i = path.iterator(); i.hasNext();) { //System.out.println("i = " + i); - IDataFlowNode inode = (IDataFlowNode) i.next(); + IDataFlowNode inode = i.next(); if (inode.getVariableAccess() == null) { continue; } diff --git a/pmd/src/net/sourceforge/pmd/rules/UselessOperationOnImmutable.java b/pmd/src/net/sourceforge/pmd/rules/UselessOperationOnImmutable.java index fc904dac9a..baac28a36b 100644 --- a/pmd/src/net/sourceforge/pmd/rules/UselessOperationOnImmutable.java +++ b/pmd/src/net/sourceforge/pmd/rules/UselessOperationOnImmutable.java @@ -1,6 +1,5 @@ package net.sourceforge.pmd.rules; -import java.util.Iterator; import java.util.Set; import net.sourceforge.pmd.AbstractRule; @@ -36,8 +35,7 @@ public class UselessOperationOnImmutable extends AbstractRule { return super.visit(node, data); } String variableName = var.getImage(); - for (Iterator it = var.getUsages().iterator(); it.hasNext();) { - NameOccurrence no = (NameOccurrence) it.next(); + for (NameOccurrence no: var.getUsages()) { // FIXME - getUsages will return everything with the same name as the variable, // see JUnit test, case 6. Changing to SimpleNode below, revisit when getUsages is fixed SimpleNode sn = no.getLocation(); diff --git a/pmd/src/net/sourceforge/pmd/rules/basic/BigIntegerInstantiation.java b/pmd/src/net/sourceforge/pmd/rules/basic/BigIntegerInstantiation.java index 463d981a63..12ef7a4add 100644 --- a/pmd/src/net/sourceforge/pmd/rules/basic/BigIntegerInstantiation.java +++ b/pmd/src/net/sourceforge/pmd/rules/basic/BigIntegerInstantiation.java @@ -29,9 +29,9 @@ public class BigIntegerInstantiation extends AbstractRule { if (("BigInteger".equals(img) || (jdk15 && "BigDecimal".equals(img))) && (node.getFirstChildOfType(ASTArrayDimsAndInits.class) == null) ) { - ASTArguments args = (ASTArguments) node.getFirstChildOfType(ASTArguments.class); + ASTArguments args = node.getFirstChildOfType(ASTArguments.class); if (args.getArgumentCount() == 1) { - ASTLiteral literal = (ASTLiteral) node.getFirstChildOfType(ASTLiteral.class); + ASTLiteral literal = node.getFirstChildOfType(ASTLiteral.class); if (literal == null || literal.jjtGetParent().jjtGetParent().jjtGetParent().jjtGetParent().jjtGetParent() != args) { return super.visit(node, data); } diff --git a/pmd/src/net/sourceforge/pmd/rules/basic/BooleanInstantiation.java b/pmd/src/net/sourceforge/pmd/rules/basic/BooleanInstantiation.java index 54085a4967..5a712288bd 100644 --- a/pmd/src/net/sourceforge/pmd/rules/basic/BooleanInstantiation.java +++ b/pmd/src/net/sourceforge/pmd/rules/basic/BooleanInstantiation.java @@ -47,11 +47,11 @@ public class BooleanInstantiation extends AbstractRule { if ("Boolean.valueOf".equals(((ASTName) node.jjtGetChild(0)).getImage()) || "java.lang.Boolean.valueOf".equals(((ASTName) node.jjtGetChild(0)).getImage())) { ASTPrimaryExpression parent = (ASTPrimaryExpression) node.jjtGetParent(); - ASTPrimarySuffix suffix = (ASTPrimarySuffix) parent.getFirstChildOfType(ASTPrimarySuffix.class); + ASTPrimarySuffix suffix = parent.getFirstChildOfType(ASTPrimarySuffix.class); if (suffix == null) { return super.visit(node, data); } - ASTPrimaryPrefix prefix = (ASTPrimaryPrefix) suffix.getFirstChildOfType(ASTPrimaryPrefix.class); + ASTPrimaryPrefix prefix = suffix.getFirstChildOfType(ASTPrimaryPrefix.class); if (prefix == null) { return super.visit(node, data); } @@ -60,7 +60,7 @@ public class BooleanInstantiation extends AbstractRule { super.addViolation(data, node); return data; } - ASTLiteral literal = (ASTLiteral) prefix.getFirstChildOfType(ASTLiteral.class); + ASTLiteral literal = prefix.getFirstChildOfType(ASTLiteral.class); if (literal != null && ("\"true\"".equals(literal.getImage()) || "\"false\"".equals(literal.getImage()))) { super.addViolation(data, node); return data; diff --git a/pmd/src/net/sourceforge/pmd/rules/basic/BrokenNullCheck.java b/pmd/src/net/sourceforge/pmd/rules/basic/BrokenNullCheck.java index 7fdf59525a..9902598a88 100644 --- a/pmd/src/net/sourceforge/pmd/rules/basic/BrokenNullCheck.java +++ b/pmd/src/net/sourceforge/pmd/rules/basic/BrokenNullCheck.java @@ -1,7 +1,6 @@ package net.sourceforge.pmd.rules.basic; import java.util.ArrayList; -import java.util.Iterator; import java.util.List; import net.sourceforge.pmd.AbstractRule; @@ -26,12 +25,12 @@ public class BrokenNullCheck extends AbstractRule { public Object visit(ASTIfStatement node, Object data) { ASTExpression expression = (ASTExpression)node.jjtGetChild(0); - ASTConditionalAndExpression conditionalAndExpression = (ASTConditionalAndExpression)expression.getFirstChildOfType(ASTConditionalAndExpression.class); + ASTConditionalAndExpression conditionalAndExpression = expression.getFirstChildOfType(ASTConditionalAndExpression.class); if (conditionalAndExpression != null) { checkForViolations(node, data, conditionalAndExpression); } - ASTConditionalOrExpression conditionalOrExpression = (ASTConditionalOrExpression)expression.getFirstChildOfType(ASTConditionalOrExpression.class); + ASTConditionalOrExpression conditionalOrExpression = expression.getFirstChildOfType(ASTConditionalOrExpression.class); if (conditionalOrExpression != null) { checkForViolations(node, data, conditionalOrExpression); } @@ -53,7 +52,7 @@ public class BrokenNullCheck extends AbstractRule { !"!=".equals(equalityExpression.getImage())) { return; } - ASTNullLiteral nullLiteral = (ASTNullLiteral)equalityExpression.getFirstChildOfType(ASTNullLiteral.class); + ASTNullLiteral nullLiteral = equalityExpression.getFirstChildOfType(ASTNullLiteral.class); if (nullLiteral == null) { return; //No null check } @@ -82,7 +81,7 @@ public class BrokenNullCheck extends AbstractRule { conditionalPrimaryExpression = (ASTPrimaryExpression)conditionalSubnode; } else { //The ASTPrimaryExpression is hidden (in a negation, braces or EqualityExpression) - conditionalPrimaryExpression = (ASTPrimaryExpression) conditionalSubnode + conditionalPrimaryExpression = conditionalSubnode .getFirstChildOfType(ASTPrimaryExpression.class); } @@ -151,13 +150,11 @@ public class BrokenNullCheck extends AbstractRule { } private ASTPrimaryExpression findNullCompareExpression(ASTEqualityExpression equalityExpression) { - List primaryExpressions = equalityExpression.findChildrenOfType(ASTPrimaryExpression.class); - for (Iterator iter = primaryExpressions.iterator(); iter.hasNext();) { - ASTPrimaryExpression primaryExpression = (ASTPrimaryExpression) iter.next(); - List primaryPrefixes = primaryExpression.findChildrenOfType(ASTPrimaryPrefix.class); - for (Iterator iterator = primaryPrefixes.iterator(); iterator.hasNext();) { - ASTPrimaryPrefix primaryPrefix = (ASTPrimaryPrefix) iterator.next(); - ASTName name = (ASTName)primaryPrefix.getFirstChildOfType(ASTName.class); + List primaryExpressions = equalityExpression.findChildrenOfType(ASTPrimaryExpression.class); + for (ASTPrimaryExpression primaryExpression: primaryExpressions) { + List primaryPrefixes = primaryExpression.findChildrenOfType(ASTPrimaryPrefix.class); + for (ASTPrimaryPrefix primaryPrefix: primaryPrefixes) { + ASTName name = primaryPrefix.getFirstChildOfType(ASTName.class); if (name != null) { //We found the variable that is compared to null return primaryExpression; diff --git a/pmd/src/net/sourceforge/pmd/rules/design/NonThreadSafeSingleton.java b/pmd/src/net/sourceforge/pmd/rules/design/NonThreadSafeSingleton.java index d7849d1a49..7748fdcee2 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/NonThreadSafeSingleton.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/NonThreadSafeSingleton.java @@ -71,12 +71,12 @@ public class NonThreadSafeSingleton extends AbstractRule { for (Iterator iter = ifStatements.iterator(); iter.hasNext();) { ASTIfStatement ifStatement = (ASTIfStatement) iter.next(); if (ifStatement.getFirstParentOfType(ASTSynchronizedStatement.class) == null) { - ASTNullLiteral NullLiteral = (ASTNullLiteral) ifStatement.getFirstChildOfType(ASTNullLiteral.class); + ASTNullLiteral NullLiteral = ifStatement.getFirstChildOfType(ASTNullLiteral.class); if (NullLiteral == null) { continue; } - ASTName Name = (ASTName) ifStatement.getFirstChildOfType(ASTName.class); + ASTName Name = ifStatement.getFirstChildOfType(ASTName.class); if (Name == null || !fieldDecls.containsKey(Name.getImage())) { continue; } @@ -92,7 +92,7 @@ public class NonThreadSafeSingleton extends AbstractRule { ASTPrimaryPrefix pp = (ASTPrimaryPrefix) ((ASTPrimaryExpression) expr.jjtGetChild(0)).jjtGetChild(0); String name = null; if (pp.usesThisModifier()) { - ASTPrimarySuffix priSuf = (ASTPrimarySuffix)expr.getFirstChildOfType(ASTPrimarySuffix.class); + ASTPrimarySuffix priSuf = expr.getFirstChildOfType(ASTPrimarySuffix.class); name = priSuf.getImage(); } else { ASTName astName = (ASTName) pp.jjtGetChild(0); diff --git a/pmd/src/net/sourceforge/pmd/rules/design/NpathComplexity.java b/pmd/src/net/sourceforge/pmd/rules/design/NpathComplexity.java index 61a4eadc41..0c5c4b8a18 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/NpathComplexity.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/NpathComplexity.java @@ -99,7 +99,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTIfStatement node, Object data) { // (npath of if + npath of else (or 1) + bool_comp of if) * npath of next - int boolCompIf = sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompIf = sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); int complexity = 0; @@ -131,7 +131,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTWhileStatement node, Object data) { // (npath of while + bool_comp of while + 1) * npath of next - int boolCompWhile = sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompWhile = sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); Integer nPathWhile = (Integer) ( (SimpleJavaNode) node.getFirstChildOfType( ASTStatement.class ) ).jjtAccept( this, data ); @@ -142,7 +142,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTDoStatement node, Object data) { // (npath of do + bool_comp of do + 1) * npath of next - int boolCompDo = sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompDo = sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); Integer nPathDo = (Integer) ( (SimpleJavaNode) node.getFirstChildOfType( ASTStatement.class ) ).jjtAccept( this, data ); @@ -153,7 +153,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTForStatement node, Object data) { // (npath of for + bool_comp of for + 1) * npath of next - int boolCompFor = sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompFor = sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); Integer nPathFor = (Integer) ( (SimpleJavaNode) node.getFirstChildOfType( ASTStatement.class ) ).jjtAccept( this, data ); @@ -164,7 +164,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTReturnStatement node, Object data) { // return statements are valued at 1, or the value of the boolean expression - ASTExpression expr = (ASTExpression) node.getFirstChildOfType( ASTExpression.class ); + ASTExpression expr = node.getFirstChildOfType( ASTExpression.class ); if ( expr == null ) { return NumericConstants.ONE; @@ -183,7 +183,7 @@ public class NpathComplexity extends StatisticalRule { public Object visit(ASTSwitchStatement node, Object data) { // bool_comp of switch + sum(npath(case_range)) - int boolCompSwitch = sumExpressionComplexity( (ASTExpression) node.getFirstChildOfType( ASTExpression.class ) ); + int boolCompSwitch = sumExpressionComplexity( node.getFirstChildOfType( ASTExpression.class ) ); int npath = 0; int caseRange = 0; diff --git a/pmd/src/net/sourceforge/pmd/rules/design/NullAssignmentRule.java b/pmd/src/net/sourceforge/pmd/rules/design/NullAssignmentRule.java index 52c36defc8..8bedba630a 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/NullAssignmentRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/NullAssignmentRule.java @@ -37,7 +37,7 @@ public class NullAssignmentRule extends AbstractRule { } private boolean isAssignmentToFinalField(ASTStatementExpression n) { - ASTName name = (ASTName) n.getFirstChildOfType(ASTName.class); + ASTName name = n.getFirstChildOfType(ASTName.class); return name != null && name.getNameDeclaration() instanceof VariableNameDeclaration && ((VariableNameDeclaration) name.getNameDeclaration()).getAccessNodeParent().isFinal(); diff --git a/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java b/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java index 3fb5462e42..d61abb0e96 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/PreserveStackTrace.java @@ -35,7 +35,7 @@ public class PreserveStackTrace extends AbstractRule { } continue; } - ASTArgumentList args = (ASTArgumentList) throwStatement.getFirstChildOfType(ASTArgumentList.class); + ASTArgumentList args = throwStatement.getFirstChildOfType(ASTArgumentList.class); if (args != null) { ck(data, target, throwStatement, args); @@ -50,7 +50,7 @@ public class PreserveStackTrace extends AbstractRule { Map vars = ((ASTName) child).getScope().getVariableDeclarations(); for (Iterator i = vars.keySet().iterator(); i.hasNext();) { VariableNameDeclaration decl = (VariableNameDeclaration) i.next(); - args = (ASTArgumentList) ((SimpleNode) decl.getNode().jjtGetParent()) + args = ((SimpleNode) decl.getNode().jjtGetParent()) .getFirstChildOfType(ASTArgumentList.class); if (args != null) { ck(data, target, throwStatement, args); diff --git a/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java b/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java index 2ce7a222c2..e579b399ec 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/UnnecessaryLocalBeforeReturn.java @@ -26,7 +26,7 @@ public class UnnecessaryLocalBeforeReturn extends AbstractRule { public Object visit(ASTReturnStatement rtn, Object data) { // skip returns of literals - ASTName name = (ASTName) rtn.getFirstChildOfType(ASTName.class); + ASTName name = rtn.getFirstChildOfType(ASTName.class); if (name == null) { return data; } diff --git a/pmd/src/net/sourceforge/pmd/rules/design/UnsynchronizedStaticDateFormatter.java b/pmd/src/net/sourceforge/pmd/rules/design/UnsynchronizedStaticDateFormatter.java index d3abf3ae63..fc9818ffdf 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/UnsynchronizedStaticDateFormatter.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/UnsynchronizedStaticDateFormatter.java @@ -42,11 +42,11 @@ public class UnsynchronizedStaticDateFormatter extends AbstractRule { if (!node.isStatic()) { return data; } - ASTClassOrInterfaceType cit = (ASTClassOrInterfaceType) node.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTClassOrInterfaceType cit = node.getFirstChildOfType(ASTClassOrInterfaceType.class); if (cit == null || !targets.contains(cit.getImage())) { return data; } - ASTVariableDeclaratorId var = (ASTVariableDeclaratorId) node.getFirstChildOfType(ASTVariableDeclaratorId.class); + ASTVariableDeclaratorId var = node.getFirstChildOfType(ASTVariableDeclaratorId.class); for (Iterator i = var.getUsages().iterator(); i.hasNext();) { NameOccurrence occ = (NameOccurrence) i.next(); SimpleNode n = occ.getLocation(); diff --git a/pmd/src/net/sourceforge/pmd/rules/design/UseSingleton.java b/pmd/src/net/sourceforge/pmd/rules/design/UseSingleton.java index 02446b6e98..2cf7175881 100644 --- a/pmd/src/net/sourceforge/pmd/rules/design/UseSingleton.java +++ b/pmd/src/net/sourceforge/pmd/rules/design/UseSingleton.java @@ -58,8 +58,8 @@ public class UseSingleton extends AbstractRule { // TODO use symbol table if (decl.getMethodName().equals("suite")) { - ASTResultType res = (ASTResultType) decl.getFirstChildOfType(ASTResultType.class); - ASTClassOrInterfaceType c = (ASTClassOrInterfaceType) res.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTResultType res = decl.getFirstChildOfType(ASTResultType.class); + ASTClassOrInterfaceType c = res.getFirstChildOfType(ASTClassOrInterfaceType.class); if (c != null && c.hasImageEqualTo("Test")) { isOK = true; } diff --git a/pmd/src/net/sourceforge/pmd/rules/migration/UnnecessaryCast.java b/pmd/src/net/sourceforge/pmd/rules/migration/UnnecessaryCast.java index 330a126e45..e2bbd1dab7 100644 --- a/pmd/src/net/sourceforge/pmd/rules/migration/UnnecessaryCast.java +++ b/pmd/src/net/sourceforge/pmd/rules/migration/UnnecessaryCast.java @@ -53,16 +53,15 @@ public class UnnecessaryCast extends AbstractRule { } private Object process(SimpleNode node, Object data) { - ASTClassOrInterfaceType cit = (ASTClassOrInterfaceType) node.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTClassOrInterfaceType cit = node.getFirstChildOfType(ASTClassOrInterfaceType.class); if (cit == null || !implClassNames.contains(cit.getImage())) { return data; } - cit = (ASTClassOrInterfaceType) cit.getFirstChildOfType(ASTClassOrInterfaceType.class); + cit = cit.getFirstChildOfType(ASTClassOrInterfaceType.class); if (cit == null) { return data; } - ASTVariableDeclaratorId decl = (ASTVariableDeclaratorId) node - .getFirstChildOfType(ASTVariableDeclaratorId.class); + ASTVariableDeclaratorId decl = node.getFirstChildOfType(ASTVariableDeclaratorId.class); List usages = decl.getUsages(); for (Iterator iter = usages.iterator(); iter.hasNext();) { NameOccurrence no = (NameOccurrence) iter.next(); diff --git a/pmd/src/net/sourceforge/pmd/rules/naming/SuspiciousHashcodeMethodName.java b/pmd/src/net/sourceforge/pmd/rules/naming/SuspiciousHashcodeMethodName.java index 0ed4ef86f7..ecaa72d48f 100644 --- a/pmd/src/net/sourceforge/pmd/rules/naming/SuspiciousHashcodeMethodName.java +++ b/pmd/src/net/sourceforge/pmd/rules/naming/SuspiciousHashcodeMethodName.java @@ -20,8 +20,8 @@ public class SuspiciousHashcodeMethodName extends AbstractRule { [not(FormalParameters/*)]]] */ - ASTResultType type = (ASTResultType) node.getFirstChildOfType(ASTResultType.class); - ASTMethodDeclarator decl = (ASTMethodDeclarator) node.getFirstChildOfType(ASTMethodDeclarator.class); + ASTResultType type = node.getFirstChildOfType(ASTResultType.class); + ASTMethodDeclarator decl = node.getFirstChildOfType(ASTMethodDeclarator.class); String name = decl.getImage(); if (name.equalsIgnoreCase("hashcode") && !name.equals("hashCode") && decl.jjtGetChild(0).jjtGetNumChildren() == 0 diff --git a/pmd/src/net/sourceforge/pmd/rules/optimization/UseStringBufferForStringAppends.java b/pmd/src/net/sourceforge/pmd/rules/optimization/UseStringBufferForStringAppends.java index bfa8e11bb7..16dad2f66a 100644 --- a/pmd/src/net/sourceforge/pmd/rules/optimization/UseStringBufferForStringAppends.java +++ b/pmd/src/net/sourceforge/pmd/rules/optimization/UseStringBufferForStringAppends.java @@ -34,9 +34,9 @@ public class UseStringBufferForStringAppends extends AbstractRule { // FIXME - hm, is there a bug in those methods? // check that we're looking at the "left hand" node. NB: // no.isRightHand / no.isLeftHand doesn't look like it works - ASTName astName = (ASTName) ((SimpleNode) statement.jjtGetChild(0)).getFirstChildOfType(ASTName.class); + ASTName astName = ((SimpleNode) statement.jjtGetChild(0)).getFirstChildOfType(ASTName.class); if (astName != null && astName.equals(name)) { - ASTAssignmentOperator assignmentOperator = (ASTAssignmentOperator) statement.getFirstChildOfType(ASTAssignmentOperator.class); + ASTAssignmentOperator assignmentOperator = statement.getFirstChildOfType(ASTAssignmentOperator.class); if (assignmentOperator != null && assignmentOperator.isCompound()) { addViolation(data, assignmentOperator); } diff --git a/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java b/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java index c26c598853..7060cd70c8 100644 --- a/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java +++ b/pmd/src/net/sourceforge/pmd/rules/strings/ConsecutiveLiteralAppends.java @@ -162,11 +162,10 @@ public class ConsecutiveLiteralAppends extends AbstractRule { private int checkConstructor(ASTVariableDeclaratorId node, Object data) { Node parent = node.jjtGetParent(); if (parent.jjtGetNumChildren() >= 2) { - ASTArgumentList list = (ASTArgumentList) ((SimpleNode) parent + ASTArgumentList list = ((SimpleNode) parent .jjtGetChild(1)).getFirstChildOfType(ASTArgumentList.class); if (list != null) { - ASTLiteral literal = (ASTLiteral) list - .getFirstChildOfType(ASTLiteral.class); + ASTLiteral literal = list.getFirstChildOfType(ASTLiteral.class); if (!isAdditive(list) && literal != null && literal.isStringLiteral()) { return 1; @@ -179,8 +178,7 @@ public class ConsecutiveLiteralAppends extends AbstractRule { private int processAdditive(Object data, int concurrentCount, SimpleNode sn, SimpleNode rootNode) { - ASTAdditiveExpression additive = (ASTAdditiveExpression) sn - .getFirstChildOfType(ASTAdditiveExpression.class); + ASTAdditiveExpression additive = sn.getFirstChildOfType(ASTAdditiveExpression.class); if (additive == null) { return 0; } diff --git a/pmd/src/net/sourceforge/pmd/rules/strings/InefficientStringBuffering.java b/pmd/src/net/sourceforge/pmd/rules/strings/InefficientStringBuffering.java index ed0507e8ca..a8f1da8ed2 100644 --- a/pmd/src/net/sourceforge/pmd/rules/strings/InefficientStringBuffering.java +++ b/pmd/src/net/sourceforge/pmd/rules/strings/InefficientStringBuffering.java @@ -86,7 +86,7 @@ public class InefficientStringBuffering extends AbstractRule { if (s == null) { return false; } - ASTName n = (ASTName)s.getFirstChildOfType(ASTName.class); + ASTName n = s.getFirstChildOfType(ASTName.class); if (n == null || n.getImage().indexOf(methodName) == -1 || !(n.getNameDeclaration() instanceof VariableNameDeclaration)) { return false; } @@ -95,7 +95,7 @@ public class InefficientStringBuffering extends AbstractRule { // we need something to support this in the framework // but, "for now" (tm): // if more than one arg to append(), skip it - ASTArgumentList argList = (ASTArgumentList)s.getFirstChildOfType(ASTArgumentList.class); + ASTArgumentList argList = s.getFirstChildOfType(ASTArgumentList.class); if (argList == null || argList.jjtGetNumChildren() > 1) { return false; } @@ -121,7 +121,7 @@ public class InefficientStringBuffering extends AbstractRule { return false; } // note that the child can be an ArrayDimsAndInits, for example, from java.lang.FloatingDecimal: t = new int[ nWords+wordcount+1 ]; - ASTClassOrInterfaceType an = (ASTClassOrInterfaceType) ao.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTClassOrInterfaceType an = ao.getFirstChildOfType(ASTClassOrInterfaceType.class); return an != null && (an.getImage().endsWith("StringBuffer") || an.getImage().endsWith("StringBuilder")); } } diff --git a/pmd/src/net/sourceforge/pmd/rules/strings/InsufficientStringBufferDeclaration.java b/pmd/src/net/sourceforge/pmd/rules/strings/InsufficientStringBufferDeclaration.java index 65e609ef34..31e5be09dc 100644 --- a/pmd/src/net/sourceforge/pmd/rules/strings/InsufficientStringBufferDeclaration.java +++ b/pmd/src/net/sourceforge/pmd/rules/strings/InsufficientStringBufferDeclaration.java @@ -152,14 +152,14 @@ public class InsufficientStringBufferDeclaration extends AbstractRule { } private int processAdditive(SimpleNode sn) { - ASTAdditiveExpression additive = (ASTAdditiveExpression) sn.getFirstChildOfType(ASTAdditiveExpression.class); + ASTAdditiveExpression additive = sn.getFirstChildOfType(ASTAdditiveExpression.class); if (additive == null) { return 0; } int anticipatedLength = 0; for (int ix = 0; ix < additive.jjtGetNumChildren(); ix++) { SimpleNode childNode = (SimpleNode) additive.jjtGetChild(ix); - ASTLiteral literal = (ASTLiteral) childNode.getFirstChildOfType(ASTLiteral.class); + ASTLiteral literal = childNode.getFirstChildOfType(ASTLiteral.class); if (literal != null && literal.getImage() != null) { anticipatedLength += literal.getImage().length() - 2; } @@ -178,7 +178,7 @@ public class InsufficientStringBufferDeclaration extends AbstractRule { private int processNode(SimpleNode sn) { int anticipatedLength = 0; - ASTPrimaryPrefix xn = (ASTPrimaryPrefix) sn.getFirstChildOfType(ASTPrimaryPrefix.class); + ASTPrimaryPrefix xn = sn.getFirstChildOfType(ASTPrimaryPrefix.class); if (xn.jjtGetNumChildren() != 0 && xn.jjtGetChild(0).getClass().equals(ASTLiteral.class)) { String str = ((SimpleNode) xn.jjtGetChild(0)).getImage(); if(isLiteral(str)){ diff --git a/pmd/src/net/sourceforge/pmd/rules/strings/StringInstantiation.java b/pmd/src/net/sourceforge/pmd/rules/strings/StringInstantiation.java index 7a0a707b85..39aa574d3c 100644 --- a/pmd/src/net/sourceforge/pmd/rules/strings/StringInstantiation.java +++ b/pmd/src/net/sourceforge/pmd/rules/strings/StringInstantiation.java @@ -33,7 +33,7 @@ public class StringInstantiation extends AbstractRule { return data; } - ASTName name = (ASTName) node.getFirstChildOfType(ASTName.class); + ASTName name =node.getFirstChildOfType(ASTName.class); // Literal, i.e., new String("foo") if (name == null) { addViolation(data, node); diff --git a/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java b/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java index df40afb2cb..48795a0968 100644 --- a/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/sunsecure/AbstractSunSecureRule.java @@ -37,7 +37,7 @@ public abstract class AbstractSunSecureRule extends AbstractRule { if (fds != null) { for (Iterator it = fds.iterator(); it.hasNext();) { final ASTFieldDeclaration fd = (ASTFieldDeclaration) it.next(); - final ASTVariableDeclaratorId vid = (ASTVariableDeclaratorId) fd.getFirstChildOfType(ASTVariableDeclaratorId.class); + final ASTVariableDeclaratorId vid = fd.getFirstChildOfType(ASTVariableDeclaratorId.class); if (vid != null && vid.hasImageEqualTo(varName)) { return true; } @@ -58,10 +58,10 @@ public abstract class AbstractSunSecureRule extends AbstractRule { * @return the name of the variable associated or null if it cannot be detected */ protected final String getReturnedVariableName(ASTReturnStatement ret) { - final ASTName n = (ASTName) ret.getFirstChildOfType(ASTName.class); + final ASTName n = ret.getFirstChildOfType(ASTName.class); if (n != null) return n.getImage(); - final ASTPrimarySuffix ps = (ASTPrimarySuffix) ret.getFirstChildOfType(ASTPrimarySuffix.class); + final ASTPrimarySuffix ps = ret.getFirstChildOfType(ASTPrimarySuffix.class); if (ps != null) return ps.getImage(); return null; @@ -80,7 +80,7 @@ public abstract class AbstractSunSecureRule extends AbstractRule { if (lvars != null) { for (Iterator it = lvars.iterator(); it.hasNext();) { final ASTLocalVariableDeclaration lvd = (ASTLocalVariableDeclaration) it.next(); - final ASTVariableDeclaratorId vid = (ASTVariableDeclaratorId) lvd.getFirstChildOfType(ASTVariableDeclaratorId.class); + final ASTVariableDeclaratorId vid = lvd.getFirstChildOfType(ASTVariableDeclaratorId.class); if (vid != null && vid.hasImageEqualTo(vn)) { return true; } @@ -96,7 +96,7 @@ public abstract class AbstractSunSecureRule extends AbstractRule { * @return the image of the first ASTName or null */ protected String getFirstNameImage(SimpleNode n) { - ASTName name = (ASTName) n.getFirstChildOfType(ASTName.class); + ASTName name = n.getFirstChildOfType(ASTName.class); if (name != null) return name.getImage(); return null; diff --git a/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java b/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java index 002ab6164c..4996150acf 100644 --- a/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java +++ b/pmd/src/net/sourceforge/pmd/rules/sunsecure/ArrayIsStoredDirectly.java @@ -47,7 +47,7 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { } public Object visit(ASTMethodDeclaration node, Object data) { - final ASTFormalParameters params = (ASTFormalParameters) node.getFirstChildOfType(ASTFormalParameters.class); + final ASTFormalParameters params = node.getFirstChildOfType(ASTFormalParameters.class); ASTFormalParameter[] arrs = getArrays(params); if (arrs != null) { checkAll(data, arrs, node.findChildrenOfType(ASTBlockStatement.class)); @@ -65,19 +65,19 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { * Checks if the variable designed in parameter is written to a field (not local variable) in the statements. */ private boolean checkForDirectAssignment(Object ctx, final ASTFormalParameter parameter, final List bs) { - final ASTVariableDeclaratorId vid = (ASTVariableDeclaratorId) parameter.getFirstChildOfType(ASTVariableDeclaratorId.class); + final ASTVariableDeclaratorId vid = parameter.getFirstChildOfType(ASTVariableDeclaratorId.class); final String varName = vid.getImage(); for (Iterator it = bs.iterator(); it.hasNext();) { final ASTBlockStatement b = (ASTBlockStatement) it.next(); if (b.containsChildOfType(ASTAssignmentOperator.class)) { - final ASTStatementExpression se = (ASTStatementExpression) b.getFirstChildOfType(ASTStatementExpression.class); + final ASTStatementExpression se = b.getFirstChildOfType(ASTStatementExpression.class); if (se == null || !(se.jjtGetChild(0) instanceof ASTPrimaryExpression)) { continue; } ASTPrimaryExpression pe = (ASTPrimaryExpression) se.jjtGetChild(0); String assignedVar = getFirstNameImage(pe); if (assignedVar == null) { - ASTPrimarySuffix suffix = (ASTPrimarySuffix) se.getFirstChildOfType(ASTPrimarySuffix.class); + ASTPrimarySuffix suffix = se.getFirstChildOfType(ASTPrimarySuffix.class); if (suffix == null) { continue; } @@ -104,7 +104,7 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { } String val = getFirstNameImage(e); if (val == null) { - ASTPrimarySuffix foo = (ASTPrimarySuffix) se.getFirstChildOfType(ASTPrimarySuffix.class); + ASTPrimarySuffix foo = se.getFirstChildOfType(ASTPrimarySuffix.class); if (foo == null) { continue; } @@ -113,7 +113,7 @@ public class ArrayIsStoredDirectly extends AbstractSunSecureRule { if (val == null) { continue; } - ASTPrimarySuffix foo = (ASTPrimarySuffix) se.getFirstChildOfType(ASTPrimarySuffix.class); + ASTPrimarySuffix foo = se.getFirstChildOfType(ASTPrimarySuffix.class); if (foo != null && foo.isArrayDereference()) { continue; } diff --git a/pmd/src/net/sourceforge/pmd/rules/sunsecure/MethodReturnsInternalArray.java b/pmd/src/net/sourceforge/pmd/rules/sunsecure/MethodReturnsInternalArray.java index d42f0dca5a..b9e3bac544 100644 --- a/pmd/src/net/sourceforge/pmd/rules/sunsecure/MethodReturnsInternalArray.java +++ b/pmd/src/net/sourceforge/pmd/rules/sunsecure/MethodReturnsInternalArray.java @@ -13,7 +13,6 @@ import net.sourceforge.pmd.ast.ASTPrimarySuffix; import net.sourceforge.pmd.ast.ASTReturnStatement; import net.sourceforge.pmd.ast.ASTTypeDeclaration; -import java.util.Iterator; import java.util.List; /** @@ -35,10 +34,9 @@ public class MethodReturnsInternalArray extends AbstractSunSecureRule { if (!method.getResultType().returnsArray()) { return data; } - List returns = method.findChildrenOfType(ASTReturnStatement.class); + List returns = method.findChildrenOfType(ASTReturnStatement.class); ASTTypeDeclaration td = method.getFirstParentOfType(ASTTypeDeclaration.class); - for (Iterator it = returns.iterator(); it.hasNext();) { - final ASTReturnStatement ret = (ASTReturnStatement) it.next(); + for (ASTReturnStatement ret: returns) { final String vn = getReturnedVariableName(ret); if (!isField(vn, td)) { continue; @@ -53,9 +51,9 @@ public class MethodReturnsInternalArray extends AbstractSunSecureRule { addViolation(data, ret, vn); } else { // This is to handle field hiding - final ASTPrimaryPrefix pp = (ASTPrimaryPrefix) ret.getFirstChildOfType(ASTPrimaryPrefix.class); + final ASTPrimaryPrefix pp = ret.getFirstChildOfType(ASTPrimaryPrefix.class); if (pp != null && pp.usesThisModifier()) { - final ASTPrimarySuffix ps = (ASTPrimarySuffix) ret.getFirstChildOfType(ASTPrimarySuffix.class); + final ASTPrimarySuffix ps = ret.getFirstChildOfType(ASTPrimarySuffix.class); if (ps.hasImageEqualTo(vn)) { addViolation(data, ret, vn); } diff --git a/pmd/src/net/sourceforge/pmd/symboltable/ScopeAndDeclarationFinder.java b/pmd/src/net/sourceforge/pmd/symboltable/ScopeAndDeclarationFinder.java index 73aeffbddb..eaa623aa4c 100644 --- a/pmd/src/net/sourceforge/pmd/symboltable/ScopeAndDeclarationFinder.java +++ b/pmd/src/net/sourceforge/pmd/symboltable/ScopeAndDeclarationFinder.java @@ -159,7 +159,7 @@ public class ScopeAndDeclarationFinder extends JavaParserVisitorAdapter { public Object visit(ASTMethodDeclaration node, Object data) { createMethodScope(node); - ASTMethodDeclarator md = (ASTMethodDeclarator) node.getFirstChildOfType(ASTMethodDeclarator.class); + ASTMethodDeclarator md = node.getFirstChildOfType(ASTMethodDeclarator.class); node.getScope().getEnclosingClassScope().addDeclaration(new MethodNameDeclaration(md)); cont(node); return data; diff --git a/pmd/src/net/sourceforge/pmd/typeresolution/ClassTypeResolver.java b/pmd/src/net/sourceforge/pmd/typeresolution/ClassTypeResolver.java index fba94938ad..2972305286 100644 --- a/pmd/src/net/sourceforge/pmd/typeresolution/ClassTypeResolver.java +++ b/pmd/src/net/sourceforge/pmd/typeresolution/ClassTypeResolver.java @@ -13,7 +13,6 @@ import net.sourceforge.pmd.ast.JavaParserVisitorAdapter; import java.util.Collections; import java.util.HashMap; -import java.util.Iterator; import java.util.List; import java.util.Map; @@ -76,11 +75,9 @@ public class ClassTypeResolver extends JavaParserVisitorAdapter { } private void populateClassName(ASTCompilationUnit node) throws ClassNotFoundException { - ASTClassOrInterfaceDeclaration decl = (ASTClassOrInterfaceDeclaration) node - .getFirstChildOfType(ASTClassOrInterfaceDeclaration.class); + ASTClassOrInterfaceDeclaration decl = node.getFirstChildOfType(ASTClassOrInterfaceDeclaration.class); if (decl != null) { - ASTPackageDeclaration pkgDecl = (ASTPackageDeclaration) node - .getFirstChildOfType(ASTPackageDeclaration.class); + ASTPackageDeclaration pkgDecl = node.getFirstChildOfType(ASTPackageDeclaration.class); className = pkgDecl == null ? decl.getImage() : ((ASTName) pkgDecl.jjtGetChild(0)).getImage() + "." + decl.getImage(); pmdClassLoader.loadClass(className); diff --git a/pmd/src/net/sourceforge/pmd/typeresolution/rules/CloneMethodMustImplementCloneable.java b/pmd/src/net/sourceforge/pmd/typeresolution/rules/CloneMethodMustImplementCloneable.java index 2c0b7426ac..c20de93202 100644 --- a/pmd/src/net/sourceforge/pmd/typeresolution/rules/CloneMethodMustImplementCloneable.java +++ b/pmd/src/net/sourceforge/pmd/typeresolution/rules/CloneMethodMustImplementCloneable.java @@ -31,7 +31,7 @@ import java.util.List; public class CloneMethodMustImplementCloneable extends AbstractRule { public Object visit(ASTClassOrInterfaceDeclaration node, Object data) { - ASTImplementsList impl = (ASTImplementsList) node.getFirstChildOfType(ASTImplementsList.class); + ASTImplementsList impl = node.getFirstChildOfType(ASTImplementsList.class); if (impl != null && impl.jjtGetParent().equals(node)) { for (int ix = 0; ix < impl.jjtGetNumChildren(); ix++) { ASTClassOrInterfaceType type = (ASTClassOrInterfaceType) impl.jjtGetChild(ix); @@ -69,12 +69,11 @@ public class CloneMethodMustImplementCloneable extends AbstractRule { public Object visit(ASTMethodDeclaration node, Object data) { if (node.isFinal()) { - List blocks = node.findChildrenOfType(ASTBlock.class); - if (blocks.size() == 1) { - blocks = node.findChildrenOfType(ASTBlockStatement.class); + if (node.findChildrenOfType(ASTBlock.class).size() == 1) { + List blocks = node.findChildrenOfType(ASTBlockStatement.class); if (blocks.size() == 1) { - ASTBlockStatement block = (ASTBlockStatement) blocks.get(0); - ASTClassOrInterfaceType type = (ASTClassOrInterfaceType) block.getFirstChildOfType(ASTClassOrInterfaceType.class); + ASTBlockStatement block = blocks.get(0); + ASTClassOrInterfaceType type = block.getFirstChildOfType(ASTClassOrInterfaceType.class); if (type != null && type.getType() != null && type.getNthParent(9).equals(node) && type.getType().equals(CloneNotSupportedException.class)) { return data; } else if (type != null && type.getType() == null && "CloneNotSupportedException".equals(type.getImage())) {