1 |
1 |
package org.gvsig.fmap.data.resource.impl;
|
2 |
2 |
|
3 |
3 |
import java.lang.reflect.InvocationTargetException;
|
4 |
|
import java.util.*;
|
|
4 |
import java.util.HashMap;
|
|
5 |
import java.util.Iterator;
|
|
6 |
import java.util.List;
|
|
7 |
import java.util.Map;
|
|
8 |
import java.util.Timer;
|
|
9 |
import java.util.TimerTask;
|
5 |
10 |
|
6 |
11 |
import org.gvsig.fmap.data.DALLocator;
|
7 |
12 |
import org.gvsig.fmap.data.DataParameters;
|
... | ... | |
15 |
20 |
import org.gvsig.fmap.data.resource.spi.AbstractResource;
|
16 |
21 |
import org.gvsig.fmap.data.resource.spi.ResourceManagerProviderServices;
|
17 |
22 |
import org.gvsig.fmap.data.resource.spi.ResourceProvider;
|
18 |
|
import org.gvsig.tools.extensionPoint.ExtensionPoint;
|
19 |
|
import org.gvsig.tools.extensionPoint.ExtensionPoints;
|
20 |
|
import org.gvsig.tools.extensionPoint.ExtensionPointsSingleton;
|
|
23 |
import org.gvsig.tools.ToolsLocator;
|
21 |
24 |
import org.gvsig.tools.observer.Observer;
|
22 |
25 |
import org.gvsig.tools.observer.impl.DelegateObservable;
|
23 |
26 |
import org.slf4j.Logger;
|
... | ... | |
30 |
33 |
final static private String DATA_MANAGER_RESOURCE_PARAMS = "Data.manager.resources.params";
|
31 |
34 |
|
32 |
35 |
// FIXME: rellenar las cadenas
|
33 |
|
private static final String DATA_MANAGER_RESOURCE_DESCRIPTION = "XXXXXXXXXX";
|
34 |
|
private static final String DATA_MANAGER_RESOURCE_PARAMS_DESCRIPTION = "XXXXXXXXXX";
|
|
36 |
private static final String DATA_MANAGER_RESOURCE_DESCRIPTION = "DAL Resources types";
|
|
37 |
private static final String DATA_MANAGER_RESOURCE_PARAMS_DESCRIPTION = "DAL Resources types Parameters";
|
35 |
38 |
|
36 |
39 |
private Map resources = new HashMap();
|
37 |
40 |
|
... | ... | |
40 |
43 |
private Timer timer = null;
|
41 |
44 |
private Logger logger;
|
42 |
45 |
|
|
46 |
public DefaultResourceManager() {
|
|
47 |
/*
|
|
48 |
* Create te extensions point in te registry.
|
|
49 |
*/
|
|
50 |
ToolsLocator.getExtensionPointManager().add(DATA_MANAGER_RESOURCE,
|
|
51 |
DATA_MANAGER_RESOURCE_DESCRIPTION);
|
|
52 |
|
|
53 |
ToolsLocator.getExtensionPointManager().add(
|
|
54 |
DATA_MANAGER_RESOURCE_PARAMS,
|
|
55 |
DATA_MANAGER_RESOURCE_PARAMS_DESCRIPTION);
|
|
56 |
}
|
|
57 |
|
43 |
58 |
public Logger getLogger() {
|
44 |
59 |
if (this.logger == null) {
|
45 |
60 |
this.logger = LoggerFactory.getLogger(this.getClass());
|
... | ... | |
163 |
178 |
|
164 |
179 |
public DataParameters createParameters(String type, Object[] args)
|
165 |
180 |
throws InitializeException {
|
166 |
|
ExtensionPoints eps = ExtensionPointsSingleton.getInstance();
|
167 |
|
ExtensionPoint epParams = (ExtensionPoint) eps
|
168 |
|
.get(DATA_MANAGER_RESOURCE_PARAMS);
|
169 |
181 |
try {
|
170 |
182 |
if (args == null) {
|
171 |
|
return (DataParameters) epParams.create(type);
|
|
183 |
return (DataParameters) ToolsLocator.getExtensionPointManager()
|
|
184 |
.get(
|
|
185 |
DATA_MANAGER_RESOURCE).create(type);
|
172 |
186 |
} else {
|
173 |
|
return (DataParameters) epParams.create(type, args);
|
|
187 |
return (DataParameters) ToolsLocator.getExtensionPointManager()
|
|
188 |
.get(DATA_MANAGER_RESOURCE).create(type, args);
|
174 |
189 |
}
|
175 |
190 |
} catch (InstantiationException e) {
|
176 |
191 |
throw new InitializeException(e);
|
... | ... | |
206 |
221 |
return resource;
|
207 |
222 |
}
|
208 |
223 |
|
209 |
|
ExtensionPoints eps = ExtensionPointsSingleton.getInstance();
|
210 |
|
ExtensionPoint epResources = (ExtensionPoint) eps
|
211 |
|
.get(DATA_MANAGER_RESOURCE);
|
212 |
224 |
try {
|
213 |
|
resource = (AbstractResource) epResources.create(
|
214 |
|
params
|
215 |
|
.getTypeName(),
|
216 |
|
new Object[] { params }
|
|
225 |
|
|
226 |
resource = (AbstractResource) ToolsLocator
|
|
227 |
.getExtensionPointManager().get(DATA_MANAGER_RESOURCE)
|
|
228 |
.create(
|
|
229 |
params.getTypeName(), new Object[] { params }
|
217 |
230 |
);
|
218 |
231 |
} catch (InstantiationException e) {
|
219 |
232 |
throw new InitializeException(e);
|
... | ... | |
238 |
251 |
|
239 |
252 |
public boolean register(String type, String description,
|
240 |
253 |
Class resourceHandler, Class resourceParams) {
|
241 |
|
ExtensionPoints eps = ExtensionPointsSingleton.getInstance();
|
242 |
|
ExtensionPoint epResources = (ExtensionPoint) eps
|
243 |
|
.get(DATA_MANAGER_RESOURCE);
|
244 |
|
if (epResources == null) {
|
245 |
|
epResources = new ExtensionPoint(DATA_MANAGER_RESOURCE,
|
246 |
|
DATA_MANAGER_RESOURCE_DESCRIPTION);
|
247 |
|
eps.put(epResources);
|
248 |
|
}
|
249 |
|
eps.add(DATA_MANAGER_RESOURCE, type, resourceHandler);
|
250 |
254 |
|
251 |
|
ExtensionPoint epParams = (ExtensionPoint) eps
|
252 |
|
.get(DATA_MANAGER_RESOURCE_PARAMS);
|
253 |
|
if (epParams == null) {
|
254 |
|
epParams = new ExtensionPoint(DATA_MANAGER_RESOURCE_PARAMS,
|
255 |
|
DATA_MANAGER_RESOURCE_PARAMS_DESCRIPTION);
|
256 |
|
eps.put(epParams);
|
257 |
|
}
|
258 |
|
eps.add(DATA_MANAGER_RESOURCE_PARAMS, type, resourceParams);
|
259 |
255 |
|
|
256 |
ToolsLocator.getExtensionPointManager().add(DATA_MANAGER_RESOURCE,
|
|
257 |
DATA_MANAGER_RESOURCE_DESCRIPTION).append(type, description,
|
|
258 |
resourceHandler);
|
|
259 |
|
|
260 |
ToolsLocator.getExtensionPointManager().add(
|
|
261 |
DATA_MANAGER_RESOURCE_PARAMS,
|
|
262 |
DATA_MANAGER_RESOURCE_PARAMS_DESCRIPTION).append(type,
|
|
263 |
description, resourceParams);
|
|
264 |
|
260 |
265 |
return true;
|
261 |
266 |
}
|
262 |
267 |
|
263 |
268 |
public List getResourceProviders() {
|
264 |
|
// TODO Auto-generated method stub
|
265 |
|
return null;
|
|
269 |
return ToolsLocator.getExtensionPointManager().get(
|
|
270 |
DATA_MANAGER_RESOURCE).getNames();
|
266 |
271 |
}
|
267 |
272 |
|
268 |
273 |
}
|