@@ -81,11 +81,9 @@ public interface LanguageVersionHandler {
     /**
      * Get the Metrics Framework visitor.
      *
-     * @param classLoader
-     *            A ClassLoader to use for resolving Types.
      * @return VisitorStarter
      */
-    VisitorStarter getMetricsVisitorFacade(ClassLoader classLoader);
+    VisitorStarter getMetricsVisitorFacade();
 
 
     /**
/**
 * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
 */

package net.sourceforge.pmd.lang;

import java.io.Writer;

import net.sourceforge.pmd.lang.dfa.DFAGraphRule;
import net.sourceforge.pmd.lang.rule.RuleViolationFactory;

/**
 * Interface for obtaining the classes necessary for checking source files of a
 * specific language.
 *
 * @author pieter_van_raemdonck - Application Engineers NV/SA - www.ae.be
 */
public interface LanguageVersionHandler {

    /**
     * Get the DataFlowHandler.
     */
    DataFlowHandler getDataFlowHandler();

    /**
     * Get the XPathHandler.
     */
    XPathHandler getXPathHandler();

    /**
     * Get the RuleViolationFactory.
     */
    RuleViolationFactory getRuleViolationFactory();

    /**
     * Get the default ParserOptions.
     *
     * @return ParserOptions
     */
    ParserOptions getDefaultParserOptions();

    /**
     * Get the Parser.
     *
     * @return Parser
     */
    Parser getParser(ParserOptions parserOptions);

    /**
     * Get the DataFlowFacade.
     *
     * @return VisitorStarter
     */
    VisitorStarter getDataFlowFacade();

    /**
     * Get the SymbolFacade.
     *
     * @return VisitorStarter
     */
    VisitorStarter getSymbolFacade();

    /**
     * Get the SymbolFacade.
     *
     * @param classLoader
     *            A ClassLoader to use for resolving Types.
     * @return VisitorStarter
     */
    VisitorStarter getSymbolFacade(ClassLoader classLoader);

    /**
     * Get the TypeResolutionFacade.
     *
     * @param classLoader
     *            A ClassLoader to use for resolving Types.
     * @return VisitorStarter
     */
    VisitorStarter getTypeResolutionFacade(ClassLoader classLoader);

    /**
     * Get the Metrics Framework visitor.
     *
     * @param classLoader
     *            A ClassLoader to use for resolving Types.
     * @return VisitorStarter
     */
    VisitorStarter getMetricsVisitorFacade(ClassLoader classLoader);


    /**
     * Get the DumpFacade.
     *
     * @param writer
     *            The writer to dump to.
     * @return VisitorStarter
     */
    VisitorStarter getDumpFacade(Writer writer, String prefix, boolean recurse);

    DFAGraphRule getDFAGraphRule();
}

+1 keep it simple for the beginning. If needed, we can this back - however, we shouldn't, since we should be able to resolve the types via the typeresolution framework.