001package org.maltparser.parser.algorithm.planar; 002 003import org.maltparser.core.exception.MaltChainedException; 004import org.maltparser.core.feature.FeatureRegistry; 005import org.maltparser.core.feature.function.Function; 006import org.maltparser.parser.AbstractParserFactory; 007import org.maltparser.parser.AlgoritmInterface; 008import org.maltparser.parser.DependencyParserConfig; 009import org.maltparser.parser.ParserConfiguration; 010import org.maltparser.parser.ParserRegistry; 011/** 012 * @author Carlos Gomez Rodriguez 013 * 014 */ 015public abstract class PlanarFactory implements AbstractParserFactory { 016 protected final DependencyParserConfig manager; 017 018 public PlanarFactory(DependencyParserConfig _manager) { 019 this.manager = _manager; 020 } 021 022 public ParserConfiguration makeParserConfiguration() throws MaltChainedException { 023 if (manager.isLoggerInfoEnabled()) { 024 manager.logInfoMessage(" Parser configuration : Planar with no_covered_roots = " + manager.getOptionValue("planar", "no_covered_roots").toString().toUpperCase() + ", " + "acyclicity = " + manager.getOptionValue("planar", "acyclicity").toString().toUpperCase() + ", connectedness = " + manager.getOptionValue("planar", "connectedness").toString().toUpperCase() + ", planar root handling = " + manager.getOptionValue("2planar" , "planar_root_handling").toString().toUpperCase() + "\n"); 025 } 026 return new PlanarConfig(manager.getOptionValue("planar", "no_covered_roots").toString() , manager.getOptionValue("planar", "acyclicity").toString() , manager.getOptionValue("planar", "connectedness").toString(), manager.getOptionValue("multiplanar" , "planar_root_handling").toString()); 027 } 028 029 public Function makeFunction(String subFunctionName, FeatureRegistry registry) throws MaltChainedException { 030 AlgoritmInterface algorithm = ((ParserRegistry)registry).getAlgorithm(); 031 return new PlanarAddressFunction(subFunctionName, algorithm); 032 } 033}