Statistics
| Revision:

root / branches / v2_0_0_prep / libraries / libFMap_dal / src / org / gvsig / fmap / dal / DALLocator.java @ 24496

History | View | Annotate | Download (3.16 KB)

1
package org.gvsig.fmap.dal;
2

    
3
import org.gvsig.fmap.dal.resource.ResourceManager;
4
import org.gvsig.tools.locator.AbstractLocator;
5
import org.gvsig.tools.locator.Locator;
6
import org.gvsig.tools.locator.LocatorException;
7

    
8
/**
9
 * @see {@link Locator}
10
 * 
11
 * This locator is the entry point of gvSIG's DAL, providing access to all DAL services. 
12
 * DAL services are grouped in two managers {@link DataManager} and {@link ResourceManager}.
13
 *  
14
 * This locator offers methods for registering as well as for obtaining both managers' unique instances.
15
 *
16
 */
17
public class DALLocator extends AbstractLocator {
18

    
19
        private static final String LOCATOR_NAME = "DALLocator";
20

    
21
        /**
22
         * DataManager name used by the locator to access the instance
23
         */
24
        public static final String DATA_MANAGER_NAME = "DataManager";
25

    
26
        private static final String DATA_MANAGER_DESCRIPTION = "DataManager of gvSIG Data Access Library";
27

    
28
        /**
29
         * ResourceManager name used by the locator to access the instance
30
         */
31
        public static final String RESOURCE_MANAGER_NAME = "ResourceManager";
32

    
33
        private static final String RESOURCE_MANAGER_DESCRIPTION = "ResourceManager of gvSIG Data Access Library";
34

    
35
        /**
36
         * Unique instance.
37
         */
38
        private static final DALLocator instance = new DALLocator();
39

    
40
        /**
41
         * Return the singleton instance.
42
         *
43
         * @return the singleton instance
44
         */
45
        public static DALLocator getInstance() {
46
                return instance;
47
        }
48

    
49
        /**
50
         * Returns the Locator name.
51
         * 
52
         * @return String containing the locator name.
53
         */
54
        public String getLocatorName() {
55
                return LOCATOR_NAME;
56
        }
57

    
58
        /**
59
         * Return a reference to DataManager.
60
         *
61
         * @return a reference to DataManager
62
         * @throws LocatorException
63
         *             if there is no access to the class or the class cannot be
64
         *             instantiated
65
         * @see Locator#get(String)
66
         */
67
        public static DataManager getDataManager() throws LocatorException {
68
                return (DataManager) getInstance().get(DATA_MANAGER_NAME);
69
        }
70

    
71
        /**
72
         * Registers the Class implementing the DataManager interface.
73
         *
74
         * @param clazz
75
         *            implementing the DataManager interface
76
         */
77
        public static void registerDataManager(Class clazz) {
78
                getInstance().register(DATA_MANAGER_NAME, DATA_MANAGER_DESCRIPTION,
79
                                clazz);
80
        }
81
        
82
        /**
83
         * Registers a class as the default DataManager.
84
         * 
85
         * @param clazz
86
         *                           implementing the DataManager interface
87
         */
88
        public static void registerDefaultDataManager(Class clazz) {
89
                getInstance().registerDefault(DATA_MANAGER_NAME, DATA_MANAGER_DESCRIPTION,
90
                                clazz);
91
        }
92

    
93
        /**
94
         * Return a reference to ResourceManager.
95
         *
96
         * @return a reference to ResourceManager
97
         * @throws LocatorException
98
         *             if there is no access to the class or the class cannot be
99
         *             instantiated
100
         * @see Locator#get(String)
101
         */
102
        public static ResourceManager getResourceManager() throws LocatorException {
103
                return (ResourceManager) getInstance().get(RESOURCE_MANAGER_NAME);
104
        }
105

    
106
        /**
107
         * Registers the Class implementing the MDManager interface.
108
         *
109
         * @param clazz
110
         *            implementing the MDManager interface
111
         */
112
        public static void registerResourceManager(Class clazz) {
113
                getInstance().register(RESOURCE_MANAGER_NAME,
114
                                RESOURCE_MANAGER_DESCRIPTION, clazz);
115
        }
116

    
117
}