net.sourceforge.pmd.lang.rule
Class AbstractRuleChainVisitor

java.lang.Object
  extended by net.sourceforge.pmd.lang.rule.AbstractRuleChainVisitor
All Implemented Interfaces:
RuleChainVisitor

public abstract class AbstractRuleChainVisitor
extends Object
implements RuleChainVisitor

This is a base class for RuleChainVisitor implementations which extracts interesting nodes from an AST, and lets each Rule visit the nodes it has expressed interest in.


Field Summary
protected  Map<String,List<Node>> nodeNameToNodes
          This is a mapping from node names to nodes instances for the current AST.
protected  Map<RuleSet,List<Rule>> ruleSetRules
          These are all the rules participating in the RuleChain, grouped by RuleSet.
 
Constructor Summary
AbstractRuleChainVisitor()
           
 
Method Summary
 void add(RuleSet ruleSet, Rule rule)
          Add the given rule to the visitor.
protected  void clear()
          Clears the internal data structure used to manage the nodes visited between visiting different ASTs.
protected  void indexNode(Node node)
          Index a single node for visitation by rules.
protected abstract  void indexNodes(List<Node> nodes, RuleContext ctx)
          Index all nodes for visitation by rules.
protected  void initialize()
          Initialize the RuleChainVisitor to be ready to perform visitations.
protected abstract  void visit(Rule rule, Node node, RuleContext ctx)
          Visit the given rule to the given node.
 void visitAll(List<Node> nodes, RuleContext ctx)
          Visit all the given Nodes provided using the given RuleContext.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ruleSetRules

protected Map<RuleSet,List<Rule>> ruleSetRules
These are all the rules participating in the RuleChain, grouped by RuleSet.


nodeNameToNodes

protected Map<String,List<Node>> nodeNameToNodes
This is a mapping from node names to nodes instances for the current AST.

Constructor Detail

AbstractRuleChainVisitor

public AbstractRuleChainVisitor()
Method Detail

add

public void add(RuleSet ruleSet,
                Rule rule)
Description copied from interface: RuleChainVisitor
Add the given rule to the visitor.

Specified by:
add in interface RuleChainVisitor
Parameters:
ruleSet - The RuleSet to which the rule belongs.
rule - The rule to add.
See Also:
RuleChainVisitor.add(RuleSet, Rule)

visitAll

public void visitAll(List<Node> nodes,
                     RuleContext ctx)
Description copied from interface: RuleChainVisitor
Visit all the given Nodes provided using the given RuleContext. Every Rule added will visit the AST as appropriate.

Specified by:
visitAll in interface RuleChainVisitor
Parameters:
nodes - The Nodes to visit.
ctx - The RuleContext.
See Also:
RuleChainVisitor.visitAll(List, RuleContext)

visit

protected abstract void visit(Rule rule,
                              Node node,
                              RuleContext ctx)
Visit the given rule to the given node.


indexNodes

protected abstract void indexNodes(List<Node> nodes,
                                   RuleContext ctx)
Index all nodes for visitation by rules.


indexNode

protected void indexNode(Node node)
Index a single node for visitation by rules.


initialize

protected void initialize()
Initialize the RuleChainVisitor to be ready to perform visitations. This method should not be called until it is known that all Rules participating in the RuleChain are ready to be initialized themselves. Some rules may require full initialization to determine if they will participate in the RuleChain, so this has been delayed as long as possible to ensure that manipulation of the Rules is no longer occurring.


clear

protected void clear()
Clears the internal data structure used to manage the nodes visited between visiting different ASTs.



Copyright © 2002-2015 InfoEther. All Rights Reserved.