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 }