From a849323c521e1c8965282792c39c7b995be31798 Mon Sep 17 00:00:00 2001 From: Tom Copeland Date: Fri, 21 Feb 2003 20:53:48 +0000 Subject: [PATCH] Added another version of findChildrenOfType git-svn-id: https://pmd.svn.sourceforge.net/svnroot/pmd/trunk@1463 51baf565-9d33-0410-a72c-fc3788e3496d --- .../test/net/sourceforge/pmd/ast/SimpleNodeTest.java | 5 +---- pmd/src/net/sourceforge/pmd/ast/SimpleNode.java | 7 +++++++ .../net/sourceforge/pmd/rules/AssignmentInOperandRule.java | 4 +--- .../sourceforge/pmd/rules/AtLeastOneConstructorRule.java | 4 +--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pmd/regress/test/net/sourceforge/pmd/ast/SimpleNodeTest.java b/pmd/regress/test/net/sourceforge/pmd/ast/SimpleNodeTest.java index b0124cc68c..f30fc90e3a 100644 --- a/pmd/regress/test/net/sourceforge/pmd/ast/SimpleNodeTest.java +++ b/pmd/regress/test/net/sourceforge/pmd/ast/SimpleNodeTest.java @@ -131,10 +131,7 @@ public class SimpleNodeTest public void testFindChildrenOfType() { ASTBlock block = new ASTBlock(2); block.jjtAddChild(new ASTReturnStatement(1), 0); - - List nodes = new ArrayList(); - block.findChildrenOfType(ASTReturnStatement.class, nodes); - assertEquals(1, nodes.size()); + assertEquals(1, block.findChildrenOfType(ASTReturnStatement.class).size()); } public void testFindChildrenOfTypeMultiple() { diff --git a/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java b/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java index e5516de10b..9507b62e65 100644 --- a/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java +++ b/pmd/src/net/sourceforge/pmd/ast/SimpleNode.java @@ -4,6 +4,7 @@ package net.sourceforge.pmd.ast; import net.sourceforge.pmd.symboltable.Scope; import java.util.List; +import java.util.ArrayList; public class SimpleNode implements Node { protected Node parent; @@ -100,6 +101,12 @@ public class SimpleNode implements Node { return endColumn; } + public List findChildrenOfType(Class targetType) { + List list = new ArrayList(); + findChildrenOfType(targetType, list); + return list; + } + public void findChildrenOfType(Class targetType, List results) { findChildrenOfType(this, targetType, results, true); } diff --git a/pmd/src/net/sourceforge/pmd/rules/AssignmentInOperandRule.java b/pmd/src/net/sourceforge/pmd/rules/AssignmentInOperandRule.java index 5c16853f19..61ee1f7e25 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AssignmentInOperandRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/AssignmentInOperandRule.java @@ -24,9 +24,7 @@ public class AssignmentInOperandRule extends AbstractRule implements Rule { } private void checkForAssignmentInConditionalExpression(SimpleNode node, Object data) { - List kids = new ArrayList(); - SimpleNode ifExpression = (SimpleNode)node.jjtGetChild(0); - ifExpression.findChildrenOfType(ASTAssignmentOperator.class, kids); + List kids = ((SimpleNode)node.jjtGetChild(0)).findChildrenOfType(ASTAssignmentOperator.class); if (!kids.isEmpty()) { RuleContext ctx = (RuleContext)data; ctx.getReport().addRuleViolation(createRuleViolation(ctx, node.getBeginLine())); diff --git a/pmd/src/net/sourceforge/pmd/rules/AtLeastOneConstructorRule.java b/pmd/src/net/sourceforge/pmd/rules/AtLeastOneConstructorRule.java index aab66915df..7e5e0b8c01 100644 --- a/pmd/src/net/sourceforge/pmd/rules/AtLeastOneConstructorRule.java +++ b/pmd/src/net/sourceforge/pmd/rules/AtLeastOneConstructorRule.java @@ -14,9 +14,7 @@ import java.util.List; public class AtLeastOneConstructorRule extends AbstractRule implements Rule { public Object visit(ASTClassDeclaration node, Object data) { - List constructors = new ArrayList(); - node.findChildrenOfType(ASTConstructorDeclaration.class, constructors); - if (constructors.isEmpty()) { + if (node.findChildrenOfType(ASTConstructorDeclaration.class).isEmpty()) { RuleContext ctx = (RuleContext)data; ctx.getReport().addRuleViolation(createRuleViolation(ctx, node.getBeginLine())); }