001 package org.maltparser.parser.algorithm.covington;
002
003 import org.maltparser.core.exception.MaltChainedException;
004 import org.maltparser.core.feature.function.Function;
005 import org.maltparser.parser.AbstractParserFactory;
006 import org.maltparser.parser.Algorithm;
007 import org.maltparser.parser.DependencyParserConfig;
008 import org.maltparser.parser.ParserConfiguration;
009 /**
010 * @author Johan Hall
011 *
012 */
013 public abstract class CovingtonFactory implements AbstractParserFactory {
014 protected Algorithm algorithm;
015 protected DependencyParserConfig manager;
016
017 public CovingtonFactory(Algorithm algorithm) {
018 setAlgorithm(algorithm);
019 setManager(algorithm.getManager());
020 }
021
022 public ParserConfiguration makeParserConfiguration() throws MaltChainedException {
023 boolean allowRoot = (Boolean)manager.getOptionValue("covington", "allow_root");
024 boolean allowShift = (Boolean)manager.getOptionValue("covington", "allow_shift");
025 if (manager.getConfigLogger().isInfoEnabled()) {
026 manager.getConfigLogger().info(" Parser configuration : Covington with allow_root="+allowRoot+" and allow_shift="+allowShift+"\n");
027 }
028 CovingtonConfig config = new CovingtonConfig(manager.getSymbolTables(), allowRoot, allowShift);
029 return config;
030 }
031
032 public Function makeFunction(String subFunctionName) throws MaltChainedException {
033 return new CovingtonAddressFunction(subFunctionName, algorithm);
034 }
035
036 public Algorithm getAlgorithm() {
037 return algorithm;
038 }
039
040 public void setAlgorithm(Algorithm algorithm) {
041 this.algorithm = algorithm;
042 }
043
044 public DependencyParserConfig getManager() {
045 return manager;
046 }
047
048 public void setManager(DependencyParserConfig manager) {
049 this.manager = manager;
050 }
051 }