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