package org.maltparser.parser.algorithm.covington; import org.maltparser.core.exception.MaltChainedException; import org.maltparser.core.feature.function.Function; import org.maltparser.parser.AbstractParserFactory; import org.maltparser.parser.Algorithm; import org.maltparser.parser.DependencyParserConfig; import org.maltparser.parser.ParserConfiguration; /** * @author Johan Hall * */ public abstract class CovingtonFactory implements AbstractParserFactory { protected Algorithm algorithm; protected DependencyParserConfig manager; public CovingtonFactory(Algorithm algorithm) { setAlgorithm(algorithm); setManager(algorithm.getManager()); } public ParserConfiguration makeParserConfiguration() throws MaltChainedException { boolean allowRoot = (Boolean) manager.getOptionValue("covington", "allow_root"); boolean allowShift = (Boolean) manager.getOptionValue("covington", "allow_shift"); if (manager.getConfigLogger().isInfoEnabled()) { manager.getConfigLogger().info(" Parser configuration : Covington with allow_root=" + allowRoot + " and allow_shift=" + allowShift + "\n"); } CovingtonConfig config = new CovingtonConfig(manager.getSymbolTables(), allowRoot, allowShift); return config; } public Function makeFunction(String subFunctionName) throws MaltChainedException { return new CovingtonAddressFunction(subFunctionName, algorithm); } public Algorithm getAlgorithm() { return algorithm; } public void setAlgorithm(Algorithm algorithm) { this.algorithm = algorithm; } public DependencyParserConfig getManager() { return manager; } public void setManager(DependencyParserConfig manager) { this.manager = manager; } }