View Javadoc
1 package net.sourceforge.pmd.symboltable; 2 3 import net.sourceforge.pmd.ast.SimpleNode; 4 5 import java.util.HashSet; 6 import java.util.Iterator; 7 import java.util.Set; 8 import java.util.Stack; 9 10 public class BasicScopeFactory implements ScopeFactory { 11 12 private Set scopeEvaluators = new HashSet(); 13 14 public BasicScopeFactory() { 15 scopeEvaluators.add(new GlobalScopeEvaluator()); 16 scopeEvaluators.add(new ClassScopeEvaluator()); 17 scopeEvaluators.add(new MethodScopeEvaluator()); 18 scopeEvaluators.add(new LocalScopeEvaluator()); 19 } 20 21 public void openScope(Stack scopes, SimpleNode node) { 22 for (Iterator i = scopeEvaluators.iterator(); i.hasNext();) { 23 ScopeEvaluator ev = (ScopeEvaluator)i.next(); 24 if (ev.isScopeCreatedBy(node)) { 25 Scope scope = ev.getScopeFor(node); 26 if (!(scope instanceof GlobalScope)) { 27 scope.setParent((Scope) scopes.peek()); 28 } 29 scopes.add(scope); 30 node.setScope((Scope)scopes.peek()); 31 break; 32 } 33 } 34 } 35 36 }

This page was automatically generated by Maven