View Javadoc
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 SymbolFacade.
63       * @param classLoader A ClassLoader to use for resolving Types.
64       * @return VisitorStarter
65       */
66      VisitorStarter getSymbolFacade(ClassLoader classLoader);
67  
68      /**
69       * Get the TypeResolutionFacade.
70       *
71       * @param classLoader A ClassLoader to use for resolving Types.
72       * @return VisitorStarter 
73       */
74      VisitorStarter getTypeResolutionFacade(ClassLoader classLoader);
75  
76      /**
77       * Get the DumpFacade.
78       *
79       * @param writer The writer to dump to.
80       * @return VisitorStarter 
81       */
82      VisitorStarter getDumpFacade(Writer writer, String prefix, boolean recurse);
83  
84      DFAGraphRule getDFAGraphRule();
85  }