001package org.maltparser.parser.algorithm.stack; 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 Johan Hall 013 * 014 */ 015public abstract class StackFactory implements AbstractParserFactory { 016 protected final DependencyParserConfig manager; 017 018 public StackFactory(DependencyParserConfig _manager) { 019 this.manager = _manager; 020 } 021 022 public ParserConfiguration makeParserConfiguration() throws MaltChainedException { 023 if (manager.isLoggerInfoEnabled()) { 024 manager.logInfoMessage(" Parser configuration : Stack\n"); 025 } 026 return new StackConfig(); 027 } 028 029 public Function makeFunction(String subFunctionName, FeatureRegistry registry) throws MaltChainedException { 030 AlgoritmInterface algorithm = ((ParserRegistry)registry).getAlgorithm(); 031 return new StackAddressFunction(subFunctionName, algorithm); 032 } 033}