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