01: package net.sourceforge.pmd.sourcetypehandlers;
02:
03: import net.sourceforge.pmd.ast.ASTCompilationUnit;
04: import net.sourceforge.pmd.dfa.DataFlowFacade;
05: import net.sourceforge.pmd.symboltable.SymbolFacade;
06: import net.sourceforge.pmd.typeresolution.TypeResolutionFacade;
07:
08: /**
09: * Implementation of VisitorsFactory for the Java AST. It uses anonymous classes
10: * as adapters of the visitors to the VisitorStarter interface.
11: *
12: * @author pieter_van_raemdonck - Application Engineers NV/SA - www.ae.be
13: */
14: public abstract class JavaTypeHandler implements SourceTypeHandler {
15:
16: public VisitorStarter getDataFlowFacade() {
17: return new VisitorStarter() {
18: public void start(Object rootNode) {
19: new DataFlowFacade()
20: .initializeWith((ASTCompilationUnit) rootNode);
21: }
22: };
23: }
24:
25: public VisitorStarter getSymbolFacade() {
26: return new VisitorStarter() {
27: public void start(Object rootNode) {
28: new SymbolFacade()
29: .initializeWith((ASTCompilationUnit) rootNode);
30: }
31: };
32: }
33:
34: public VisitorStarter getTypeResolutionFacade(
35: final ClassLoader classLoader) {
36: return new VisitorStarter() {
37: public void start(Object rootNode) {
38: new TypeResolutionFacade().initializeWith(classLoader,
39: (ASTCompilationUnit) rootNode);
40: }
41: };
42: }
43:
44: }
|