001 package org.maltparser.parser.algorithm.twoplanar;
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 Carlos Gomez Rodriguez
011 *
012 */
013 public abstract class TwoPlanarFactory implements AbstractParserFactory {
014 protected Algorithm algorithm;
015 protected DependencyParserConfig manager;
016
017 public TwoPlanarFactory(Algorithm algorithm) {
018 setAlgorithm(algorithm);
019 setManager(algorithm.getManager());
020 }
021
022 public ParserConfiguration makeParserConfiguration() throws MaltChainedException {
023 if (manager.getConfigLogger().isInfoEnabled()) {
024 manager.getConfigLogger().info(" Parser configuration : Two-Planar with no_covered_roots = " + manager.getOptionValue("planar", "no_covered_roots").toString().toUpperCase() + ", " + "acyclicity = " + manager.getOptionValue("planar", "acyclicity").toString().toUpperCase() + ", planar root handling = " + manager.getOptionValue("2planar" , "planar_root_handling").toString().toUpperCase() + ", reduce on switch = " + manager.getOptionValue("2planar" , "reduceonswitch").toString().toUpperCase() + "\n");
025 }
026 return new TwoPlanarConfig(manager.getSymbolTables() , manager.getOptionValue("planar", "no_covered_roots").toString() , manager.getOptionValue("planar", "acyclicity").toString() , manager.getOptionValue("2planar" , "reduceonswitch").toString() , manager.getOptionValue("2planar" , "planar_root_handling").toString() );
027 }
028
029 public Function makeFunction(String subFunctionName) throws MaltChainedException {
030 return new TwoPlanarAddressFunction(subFunctionName, algorithm);
031 }
032
033 public Algorithm getAlgorithm() {
034 return algorithm;
035 }
036
037 public void setAlgorithm(Algorithm algorithm) {
038 this.algorithm = algorithm;
039 }
040
041 public DependencyParserConfig getManager() {
042 return manager;
043 }
044
045 public void setManager(DependencyParserConfig manager) {
046 this.manager = manager;
047 }
048 }