Statistics
| Revision:

svn-gvsig-desktop / tags / v2_0_0_Build_2057 / frameworks / _fwAndami / src / org / gvsig / andami / PluginsLocator.java @ 39145

History | View | Annotate | Download (2.69 KB)

1
package org.gvsig.andami;
2

    
3
import org.gvsig.andami.actioninfo.ActionInfoManager;
4
import org.gvsig.tools.locator.AbstractLocator;
5
import org.gvsig.tools.locator.Locator;
6
import org.gvsig.tools.locator.LocatorException;
7

    
8

    
9
public class PluginsLocator extends AbstractLocator {
10

    
11
    private static final String LOCATOR_NAME = "PluginsLocator";
12

    
13
    /**
14
     * PluginsManager name used by the locator to access the instance
15
     */
16
    public static final String PLUGINS_MANAGER_NAME = "PluginsManager";
17
    public static final String PLUGINS_ACTIONINFO_MANAGER_NAME = "PluginsActionInfoManager";
18

    
19
    private static final String PLUGINS_MANAGER_DESCRIPTION = "PluginsManager of Andami framework";
20
    private static final String PLUGINS_ACTIONINFO_MANAGER_DESCRIPTION = "PluginsActionInfoManager";
21

    
22
    /**
23
     * Unique instance.
24
     */
25
    private static final PluginsLocator instance = new PluginsLocator();
26

    
27
    /**
28
     * Return the singleton instance.
29
     *
30
     * @return the singleton instance
31
     */
32
    public static PluginsLocator getInstance() {
33
        return instance;
34
    }
35

    
36
    /**
37
     * Returns the Locator name.
38
     *
39
     * @return String containing the locator name.
40
     */
41
    public String getLocatorName() {
42
        return LOCATOR_NAME;
43
    }
44

    
45
    /**
46
     * Return a reference to DataManager.
47
     *
48
     * @return a reference to DataManager
49
     * @throws LocatorException
50
     *             if there is no access to the class or the class cannot be
51
     *             instantiated
52
     * @see Locator#get(String)
53
     */
54
    public static PluginsManager getManager() throws LocatorException {
55
        return (PluginsManager) getInstance().get(PLUGINS_MANAGER_NAME);
56
    }
57
    
58
    /**
59
     * Registers the Class implementing the DataManager interface.
60
     *
61
     * @param clazz
62
     *            implementing the DataManager interface
63
     */
64
    public static void registerManager(Class clazz) {
65
        getInstance().register(PLUGINS_MANAGER_NAME, PLUGINS_MANAGER_DESCRIPTION,
66
                clazz);
67
    }
68

    
69
    /**
70
     * Registers a class as the default DataManager.
71
     *
72
     * @param clazz
73
     *            implementing the DataManager interface
74
     */
75
    public static void registerDefaultManager(Class clazz) {
76
        getInstance().registerDefault(PLUGINS_MANAGER_NAME, PLUGINS_MANAGER_DESCRIPTION,
77
                clazz);
78
    }
79

    
80

    
81
    public static ActionInfoManager getActionInfoManager() throws LocatorException {
82
        return (ActionInfoManager) getInstance().get(PLUGINS_ACTIONINFO_MANAGER_NAME);
83
    }
84

    
85
    public static void registerActionInfoManager(Class clazz) {
86
        getInstance().register(PLUGINS_ACTIONINFO_MANAGER_NAME, PLUGINS_ACTIONINFO_MANAGER_DESCRIPTION,
87
                clazz);
88
    }
89

    
90
}