01: /*
02: Copyright (C) 2007 Mobixess Inc. http://www.java-objects-database.com
03:
04: This file is part of the JODB (Java Objects Database) open source project.
05:
06: JODB is free software; you can redistribute it and/or modify it under
07: the terms of version 2 of the GNU General Public License as published
08: by the Free Software Foundation.
09:
10: JODB is distributed in the hope that it will be useful, but WITHOUT ANY
11: WARRANTY; without even the implied warranty of MERCHANTABILITY or
12: FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
13: for more details.
14:
15: You should have received a copy of the GNU General Public License along
16: with this program; if not, write to the Free Software Foundation, Inc.,
17: 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18: */
19: package com.mobixess.jodb.core.plugin;
20:
21: import java.util.HashMap;
22:
23: import com.mobixess.jodb.core.plugin.basePlugins.StringProcessor;
24: import com.mobixess.jodb.core.transaction.BaseProcessor;
25:
26: public class JODBPluginRegistry {
27: private static JODBPluginRegistry _instance = new JODBPluginRegistry();
28: private HashMap<Class, IClassProcessor> _processors = new HashMap<Class, IClassProcessor>();
29: private BaseProcessor _baseProcessor = new BaseProcessor();
30:
31: private JODBPluginRegistry() {
32: register(new StringProcessor());
33: }
34:
35: public static JODBPluginRegistry getInstance() {
36: return _instance;
37: }
38:
39: public void register(IClassProcessor processor) {
40: _processors.put(processor.getType(), processor);
41: }
42:
43: public void unregister(Class clazz) {
44: _processors.remove(clazz);
45: }
46:
47: public IClassProcessor getClassProcessor(Class clazz) {
48: IClassProcessor classProcessor = _processors.get(clazz);
49: if (classProcessor != null) {
50: return classProcessor;
51: }
52: return _baseProcessor;
53: }
54: }
|