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 }
|