File size: 2,377 Bytes
6f3ebfa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
package org.maltparser.parser;

import org.maltparser.core.feature.AbstractFeatureFactory;
import org.maltparser.core.feature.FeatureRegistry;
import org.maltparser.core.helper.HashMap;
import org.maltparser.core.io.dataformat.DataFormatInstance;
import org.maltparser.core.symbol.SymbolTableHandler;

public class ParserRegistry implements FeatureRegistry {
	private AbstractFeatureFactory abstractParserFactory;
	private AlgoritmInterface algorithm;
	private SymbolTableHandler symbolTableHandler;
	private DataFormatInstance dataFormatInstance;
	private final HashMap<Class<?>, Object> registry;
	
	public ParserRegistry() {
		this.registry = new HashMap<Class<?>, Object>();
	}

	public Object get(Class<?> key) {
		return registry.get(key);
	}
	
	public void put(Class<?> key, Object value) {
		registry.put(key, value);
		if (key == org.maltparser.parser.AbstractParserFactory.class) {
			abstractParserFactory = (AbstractParserFactory)value;
		} else if (key == org.maltparser.parser.AlgoritmInterface.class) {
			algorithm = (AlgoritmInterface)value;
		}
	}
	
	public AbstractFeatureFactory getFactory(Class<?> clazz) {
		return abstractParserFactory;
	}
	
	public SymbolTableHandler getSymbolTableHandler() {
		return symbolTableHandler;
	}

	public void setSymbolTableHandler(SymbolTableHandler symbolTableHandler) {
		this.symbolTableHandler = symbolTableHandler;
		this.registry.put(org.maltparser.core.symbol.SymbolTableHandler.class, symbolTableHandler);
	}

	public DataFormatInstance getDataFormatInstance() {
		return dataFormatInstance;
	}

	public void setDataFormatInstance(DataFormatInstance dataFormatInstance) {
		this.dataFormatInstance = dataFormatInstance;
		this.registry.put(org.maltparser.core.io.dataformat.DataFormatInstance.class, dataFormatInstance);
	}

	public AbstractFeatureFactory getAbstractParserFeatureFactory() {
		return abstractParserFactory;
	}

	public void setAbstractParserFeatureFactory(AbstractParserFactory _abstractParserFactory) {
		this.registry.put(org.maltparser.parser.AbstractParserFactory.class, _abstractParserFactory);
		this.abstractParserFactory = _abstractParserFactory;
	}

	public AlgoritmInterface getAlgorithm() {
		return algorithm;
	}

	public void setAlgorithm(AlgoritmInterface algorithm) {
		this.registry.put(org.maltparser.parser.AlgoritmInterface.class, algorithm);
		this.algorithm = algorithm;
	}
}