/**
* BSD-style license; for more info see http://pmd.sourceforge.net/license.html
*/
package net.sourceforge.pmd.lang;
import org.jaxen.Navigator;
import net.sourceforge.pmd.lang.xpath.Initializer;
import net.sf.saxon.sxpath.IndependentContext;
/**
* Interface for performing Language specific XPath handling, such as
* initialization and navigation.
*/
public interface XPathHandler {
XPathHandler DUMMY = new XPathHandler() {
@Override
public void initialize() {
}
@Override
public void initialize(IndependentContext context) {
}
@Override
public Navigator getNavigator() {
return null;
}
};
/**
* Initialize. This is intended to be called by {@link Initializer} to
* perform Language specific initialization.
*/
void initialize();
/**
* Initialize. This is intended to be called by {@link Initializer} to
* perform Language specific initialization for Saxon.
*/
void initialize(IndependentContext context);
/**
* Get a Jaxen Navigator for this Language. May return <code>null</code> if
* there is no Jaxen Navigation for this language.
*/
Navigator getNavigator();
}