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.rule.RuleViolationFactory;
9
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 default ParserOptions.
35 * @return ParserOptions
36 */
37 ParserOptions getDefaultParserOptions();
38
39 /**
40 * Get the Parser.
41 *
42 * @return Parser
43 */
44 Parser getParser(ParserOptions parserOptions);
45
46 /**
47 * Get the DataFlowFacade.
48 *
49 * @return VisitorStarter
50 */
51 VisitorStarter getDataFlowFacade();
52
53 /**
54 * Get the SymbolFacade.
55 *
56 * @return VisitorStarter
57 */
58 VisitorStarter getSymbolFacade();
59
60 /**
61 * Get the TypeResolutionFacade.
62 *
63 * @param classLoader A ClassLoader to use for resolving Types.
64 * @return VisitorStarter
65 */
66 VisitorStarter getTypeResolutionFacade(ClassLoader classLoader);
67
68 /**
69 * Get the DumpFacade.
70 *
71 * @param writer The writer to dump to.
72 * @return VisitorStarter
73 */
74 VisitorStarter getDumpFacade(Writer writer, String prefix, boolean recurse);
75 }