001package org.maltparser.parser; 002 003import org.maltparser.core.feature.AbstractFeatureFactory; 004import org.maltparser.core.feature.FeatureRegistry; 005import org.maltparser.core.helper.HashMap; 006import org.maltparser.core.io.dataformat.DataFormatInstance; 007import org.maltparser.core.symbol.SymbolTableHandler; 008 009public class ParserRegistry implements FeatureRegistry { 010 private AbstractFeatureFactory abstractParserFactory; 011 private AlgoritmInterface algorithm; 012 private SymbolTableHandler symbolTableHandler; 013 private DataFormatInstance dataFormatInstance; 014 private final HashMap<Class<?>, Object> registry; 015 016 public ParserRegistry() { 017 this.registry = new HashMap<Class<?>, Object>(); 018 } 019 020 public Object get(Class<?> key) { 021 return registry.get(key); 022 } 023 024 public void put(Class<?> key, Object value) { 025 registry.put(key, value); 026 if (key == org.maltparser.parser.AbstractParserFactory.class) { 027 abstractParserFactory = (AbstractParserFactory)value; 028 } else if (key == org.maltparser.parser.AlgoritmInterface.class) { 029 algorithm = (AlgoritmInterface)value; 030 } 031 } 032 033 public AbstractFeatureFactory getFactory(Class<?> clazz) { 034 return abstractParserFactory; 035 } 036 037 public SymbolTableHandler getSymbolTableHandler() { 038 return symbolTableHandler; 039 } 040 041 public void setSymbolTableHandler(SymbolTableHandler symbolTableHandler) { 042 this.symbolTableHandler = symbolTableHandler; 043 this.registry.put(org.maltparser.core.symbol.SymbolTableHandler.class, symbolTableHandler); 044 } 045 046 public DataFormatInstance getDataFormatInstance() { 047 return dataFormatInstance; 048 } 049 050 public void setDataFormatInstance(DataFormatInstance dataFormatInstance) { 051 this.dataFormatInstance = dataFormatInstance; 052 this.registry.put(org.maltparser.core.io.dataformat.DataFormatInstance.class, dataFormatInstance); 053 } 054 055 public AbstractFeatureFactory getAbstractParserFeatureFactory() { 056 return abstractParserFactory; 057 } 058 059 public void setAbstractParserFeatureFactory(AbstractParserFactory _abstractParserFactory) { 060 this.registry.put(org.maltparser.parser.AbstractParserFactory.class, _abstractParserFactory); 061 this.abstractParserFactory = _abstractParserFactory; 062 } 063 064 public AlgoritmInterface getAlgorithm() { 065 return algorithm; 066 } 067 068 public void setAlgorithm(AlgoritmInterface algorithm) { 069 this.registry.put(org.maltparser.parser.AlgoritmInterface.class, algorithm); 070 this.algorithm = algorithm; 071 } 072}