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 }