Statistics
| Revision:

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
}