View Javadoc

1   package net.sourceforge.pmd.ast;
2   
3   import java.util.Iterator;
4   import java.util.List;
5   
6   public class DiscardableNodeCleaner {
7   
8       private static final Class[] clazzes = new Class[]{
9           ASTEqualityExpression.class,
10          ASTAndExpression.class,
11          ASTInstanceOfExpression.class,
12          ASTUnaryExpression.class,
13          ASTShiftExpression.class,
14          ASTConditionalOrExpression.class,
15          ASTInclusiveOrExpression.class,
16          ASTExclusiveOrExpression.class,
17          ASTConditionalExpression.class,
18          ASTRelationalExpression.class,
19          ASTUnaryExpression.class,
20          ASTUnaryExpressionNotPlusMinus.class,
21          ASTPostfixExpression.class,
22          ASTMultiplicativeExpression.class,
23          ASTAdditiveExpression.class,
24          ASTConditionalAndExpression.class,
25          ASTModifiers.class
26      };
27  
28      public void clean(ASTCompilationUnit root) {
29          for (int i = 0; i < clazzes.length; i++) {
30              List nodes = root.findChildrenOfType(clazzes[i]);
31              for (Iterator i1 = nodes.iterator(); i1.hasNext();) {
32                  SimpleNode n = (SimpleNode) i1.next();
33                  n.discardIfNecessary();
34              }
35          }
36      }
37  
38  }