Revision 24261

View differences:

branches/v2_0_0_prep/libraries/libTools/src/org/gvsig/tools/locator/AbstractLocator.java
27 27
package org.gvsig.tools.locator;
28 28

  
29 29
import java.util.HashMap;
30
import java.util.List;
30 31
import java.util.Map;
31
import java.util.Set;
32 32

  
33 33
import org.gvsig.tools.extensionpoint.ExtensionPoint;
34
import org.gvsig.tools.extensionpoint.ExtensionPoints;
35
import org.gvsig.tools.extensionpoint.ExtensionPointsSingleton;
34
import org.gvsig.tools.extensionpoint.ExtensionPointManager;
35
import org.gvsig.tools.extensionpoint.impl.DefaultExtensionPointManager;
36 36

  
37 37
/**
38 38
 * Locator implementation based on the use of the ExtensionPoints.
......
66 66

  
67 67
    public String[] getNames() {
68 68
        ExtensionPoint extensionPoint = getExtensionPoint();
69
        Set names = extensionPoint.keySet();
69
        List names = extensionPoint.getNames();
70 70
        return names == null || names.size() == 0 ? null
71 71
                : (String[]) names
72 72
                .toArray(new String[names.size()]);
73 73
    }
74 74

  
75 75
    public void register(String name, Class clazz) {
76
        ExtensionPointsSingleton.getInstance()
77
                .add(getLocatorName(), name, clazz);
76
    	DefaultExtensionPointManager.getManager().add(getLocatorName())
77
				.append(name, null, clazz);
78 78
    }
79 79

  
80 80
    public void registerDefault(String name, Class clazz) {
......
85 85
	}
86 86

  
87 87
    public void register(String name, String description, Class clazz) {
88
        ExtensionPointsSingleton.getInstance().add(getLocatorName(), name,
88
    	DefaultExtensionPointManager.getManager().add(getLocatorName())
89
				.append(name,
89 90
                description, clazz);
90 91
    }
91 92

  
......
97 98
    }
98 99

  
99 100
    public void register(String name, LocatorObjectFactory factory) {
100
        ExtensionPointsSingleton.getInstance().add(getLocatorName(), name,
101
    	DefaultExtensionPointManager.getManager().add(getLocatorName()).append(
102
				name, null,
101 103
                factory);
102 104
    }
103 105

  
104 106
    public void register(String name, String description,
105 107
            LocatorObjectFactory factory) {
106
        ExtensionPointsSingleton.getInstance().add(getLocatorName(), name,
108
    	DefaultExtensionPointManager.getManager().add(getLocatorName()).append(
109
				name,
107 110
                description, factory);
108 111
    }
109 112

  
......
115 118
     * Returns the ExtensionPoint to use for the Locator values.
116 119
     */
117 120
    private ExtensionPoint getExtensionPoint() {
118
        ExtensionPoints extensionPoints = ExtensionPointsSingleton
119
                .getInstance();
121
        ExtensionPointManager manager = DefaultExtensionPointManager
122
				.getManager();
120 123
        String moduleName = getLocatorName();
121 124
        // synchronize the retrieval of the ExtensionPoint
122 125
        synchronized (lock) {
123

  
124
            ExtensionPoint extensionPoint = (ExtensionPoint) extensionPoints
125
                    .get(moduleName);
126

  
126
            ExtensionPoint extensionPoint = manager.get(moduleName);
127 127
            if (extensionPoint == null) {
128
                extensionPoint = new ExtensionPoint(moduleName);
129
                extensionPoints.put(moduleName, extensionPoint);
128
                extensionPoint = manager.add(moduleName);
130 129
            }
131

  
132 130
            return extensionPoint;
133 131
        }
134 132
    }
branches/v2_0_0_prep/libraries/libTools/src/org/gvsig/tools/ToolsLocator.java
25 25
	 */
26 26
	private static final ToolsLocator instance = new ToolsLocator();
27 27

  
28
	private static final ExtensionPointManager extensionPointManager = new DefaultExtensionPointManager();
29

  
30 28
	/**
31 29
	 * Return the singleton instance.
32 30
	 *
......
102 100
	}
103 101

  
104 102
	public static ExtensionPointManager getExtensionPointManager() {
105
		return extensionPointManager;
103
		return DefaultExtensionPointManager.getManager();
106 104
	}
107 105
}
branches/v2_0_0_prep/libraries/libTools/src/org/gvsig/tools/extensionpoint/ExtensionPointManager.java
78 78
	 */
79 79
	public ExtensionPoint add(String name, String description);
80 80

  
81
	public ExtensionPoint add(String name);
81 82

  
83

  
82 84
}
branches/v2_0_0_prep/libraries/libTools/src/org/gvsig/tools/extensionpoint/impl/DefaultExtensionPointManager.java
15 15

  
16 16
public class DefaultExtensionPointManager implements ExtensionPointManager {
17 17

  
18
	private static DefaultExtensionPointManager manager = null;
19

  
18 20
	private Map extensionsPoints;
19 21

  
20 22
	public DefaultExtensionPointManager() {
21 23
		this.extensionsPoints = new HashMap();
22 24
	}
23 25

  
26
	public static DefaultExtensionPointManager getManager() {
27
		if (manager == null) {
28
			manager = new DefaultExtensionPointManager();
29
		}
30
		return manager;
31
	}
32

  
24 33
	public Object create(Class cls) throws InstantiationException,
25 34
			IllegalAccessException {
26 35
		Object obj = null;
......
80 89
		return true;
81 90
	}
82 91

  
83
	public ExtensionPoint add(String name, String description) {
92
	public synchronized ExtensionPoint add(String name, String description) {
84 93
		ExtensionPoint ep = (ExtensionPoint) this.extensionsPoints.get(name);
85 94
		if (ep == null) {
86 95
			ep = new DefaultExtensionPoint(this, name, description);
......
89 98
		return ep;
90 99
	}
91 100

  
101
	public ExtensionPoint add(String name) {
102
		return add(name, null);
103
	}
104

  
92 105
	public ExtensionPoint.Extension add(String name, String description,
93 106
			String extName,
94 107
			String extDescription, Class extension) {

Also available in: Unified diff