svn-gvsig-desktop / trunk / libraries / libDataSource / src / org / gvsig / data / ResourceManager.java @ 20603
History | View | Annotate | Download (1.91 KB)
1 | 19399 | vcaballero | package org.gvsig.data; |
---|---|---|---|
2 | |||
3 | 20580 | jmvivo | import java.security.KeyException; |
4 | import java.util.HashMap; |
||
5 | import java.util.Map; |
||
6 | 19399 | vcaballero | |
7 | 20603 | jmvivo | import org.gvsig.util.observer.Observable; |
8 | 20580 | jmvivo | import org.gvsig.util.observer.IObservable; |
9 | import org.gvsig.util.observer.IObserver; |
||
10 | 19399 | vcaballero | |
11 | 20580 | jmvivo | |
12 | public class ResourceManager implements IObservable{ |
||
13 | |||
14 | 19399 | vcaballero | private static ResourceManager resourceManager = null; |
15 | |||
16 | 20580 | jmvivo | private Map resources = new HashMap(); |
17 | 19608 | jmvivo | |
18 | 20603 | jmvivo | private Observable observers = new Observable(); |
19 | 20580 | jmvivo | |
20 | 19399 | vcaballero | public static ResourceManager getResourceManager() { |
21 | if( resourceManager == null ) { |
||
22 | resourceManager = new ResourceManager();
|
||
23 | } |
||
24 | return resourceManager;
|
||
25 | } |
||
26 | 19608 | jmvivo | |
27 | 20580 | jmvivo | public synchronized Resource addResource(Resource resource) { |
28 | 19399 | vcaballero | // Busca si el recurso no esta y de
|
29 | // ser asi lo aƱade.
|
||
30 | // En todo caso incrementa las referencias.
|
||
31 | 19608 | jmvivo | |
32 | 20580 | jmvivo | Resource res = (Resource)this.resources.get(resource.getKey());
|
33 | if (res == null){ |
||
34 | res = resource; |
||
35 | this.resources.put(res.getKey(), res);
|
||
36 | res.addObservers(this.observers);
|
||
37 | res.preapare(); |
||
38 | } |
||
39 | res.incref(); |
||
40 | |||
41 | return res;
|
||
42 | 19399 | vcaballero | } |
43 | 19608 | jmvivo | |
44 | 20580 | jmvivo | public synchronized void remove(Resource resource) throws KeyException { |
45 | remove(resource.getKey()); |
||
46 | } |
||
47 | |||
48 | public synchronized void remove(String key) throws KeyException { |
||
49 | 19399 | vcaballero | // Decrementa las referencias y lo elimina
|
50 | // si esta a 0 lo elimina.
|
||
51 | 19608 | jmvivo | |
52 | 19399 | vcaballero | } |
53 | |||
54 | 20580 | jmvivo | public Resource getResource(String key){ |
55 | return (Resource)this.resources.get(key); |
||
56 | } |
||
57 | 19608 | jmvivo | |
58 | 20580 | jmvivo | /* (non-Javadoc)
|
59 | * @see org.gvsig.data.IObservable#addObserver(org.gvsig.data.IObserver)
|
||
60 | */
|
||
61 | public void addObserver(IObserver o) { |
||
62 | this.observers.addObserver(o);
|
||
63 | 19608 | jmvivo | } |
64 | |||
65 | 20580 | jmvivo | /* (non-Javadoc)
|
66 | * @see org.gvsig.data.IObservable#deleteObserver(org.gvsig.data.IObserver)
|
||
67 | */
|
||
68 | public void deleteObserver(IObserver o) { |
||
69 | this.observers.deleteObserver(o);
|
||
70 | } |
||
71 | |||
72 | /* (non-Javadoc)
|
||
73 | * @see org.gvsig.data.IObservable#deleteObservers()
|
||
74 | */
|
||
75 | public void deleteObservers() { |
||
76 | this.observers.deleteObservers();
|
||
77 | } |
||
78 | |||
79 | 19399 | vcaballero | } |