LanguageVersionHandler.java
01 /**
02  * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
03  */
04 package net.sourceforge.pmd.lang;
05 
06 import java.io.Writer;
07 
08 import net.sourceforge.pmd.lang.rule.RuleViolationFactory;
09 
10 /**
11  * Interface for obtaining the classes necessary for checking source files
12  * of a specific language.
13  *
14  @author pieter_van_raemdonck - Application Engineers NV/SA - www.ae.be
15  */
16 public interface LanguageVersionHandler {
17 
18     /**
19      * Get the DataFlowHandler.
20      */
21     DataFlowHandler getDataFlowHandler();
22     
23     /**
24      * Get the XPathHandler.
25      */
26     XPathHandler getXPathHandler();
27 
28     /**
29      * Get the RuleViolationFactory.
30      */
31     RuleViolationFactory getRuleViolationFactory();
32 
33     /**
34      * Get the Parser.
35      *
36      @return Parser
37      */
38     Parser getParser();
39 
40     /**
41      * Get the DataFlowFacade.
42      *
43      @return VisitorStarter
44      */
45     VisitorStarter getDataFlowFacade();
46 
47     /**
48      * Get the SymbolFacade.
49      *
50      @return VisitorStarter 
51      */
52     VisitorStarter getSymbolFacade();
53 
54     /**
55      * Get the TypeResolutionFacade.
56      *
57      @param classLoader A ClassLoader to use for resolving Types.
58      @return VisitorStarter 
59      */
60     VisitorStarter getTypeResolutionFacade(ClassLoader classLoader);
61 
62     /**
63      * Get the DumpFacade.
64      *
65      @param writer The writer to dump to.
66      @return VisitorStarter 
67      */
68     VisitorStarter getDumpFacade(Writer writer, String prefix, boolean recurse);
69 }