Revision 43782
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/pom.xml | ||
---|---|---|
1 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
2 |
<modelVersion>4.0.0</modelVersion> |
|
3 |
<artifactId>org.gvsig.temporarystorage</artifactId> |
|
4 |
<packaging>pom</packaging> |
|
5 |
<description></description> |
|
6 |
<parent> |
|
7 |
<groupId>org.gvsig</groupId> |
|
8 |
<artifactId>org.gvsig.desktop.library</artifactId> |
|
9 |
<version>2.0.221-SNAPSHOT</version> |
|
10 |
</parent> |
|
11 |
<modules> |
|
12 |
<module>org.gvsig.temporarystorage.lib</module> |
|
13 |
</modules> |
|
14 |
</project> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/pom.xml | ||
---|---|---|
1 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
2 |
<modelVersion>4.0.0</modelVersion> |
|
3 |
<parent> |
|
4 |
<groupId>org.gvsig</groupId> |
|
5 |
<artifactId>org.gvsig.temporarystorage</artifactId> |
|
6 |
<version>2.0.221-SNAPSHOT</version> |
|
7 |
</parent> |
|
8 |
<groupId>org.gvsig</groupId> |
|
9 |
<artifactId>org.gvsig.temporarystorage.lib</artifactId> |
|
10 |
<packaging>pom</packaging> |
|
11 |
<modules> |
|
12 |
<module>org.gvsig.temporarystorage.lib.api</module> |
|
13 |
<module>org.gvsig.temporarystorage.lib.impl</module> |
|
14 |
</modules> |
|
15 |
</project> |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.impl/src/main/resources/META-INF/services/org.gvsig.tools.library.Library | ||
---|---|---|
1 |
org.gvsig.temporarystorage.impl.TemporaryStorageManagerImplLibrary |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.impl/src/main/java/org/gvsig/temporarystorage/impl/DefaultTemporaryStorageGroup.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage.impl; |
|
2 |
|
|
3 |
import java.util.ArrayList; |
|
4 |
import java.util.Collections; |
|
5 |
import java.util.Comparator; |
|
6 |
import java.util.List; |
|
7 |
import org.apache.commons.lang3.StringUtils; |
|
8 |
import org.apache.commons.lang3.tuple.MutablePair; |
|
9 |
import org.apache.commons.lang3.tuple.Pair; |
|
10 |
import org.gvsig.temporarystorage.TemporaryStorageGroup; |
|
11 |
|
|
12 |
public class DefaultTemporaryStorageGroup implements TemporaryStorageGroup { |
|
13 |
|
|
14 |
private final String name; |
|
15 |
private final Class classOfElements; |
|
16 |
private final List<Pair<String, Object>> elements; |
|
17 |
|
|
18 |
public DefaultTemporaryStorageGroup(String name, Class classOfElements) { |
|
19 |
this.name = name; |
|
20 |
this.classOfElements = classOfElements; |
|
21 |
this.elements = new ArrayList<>(); |
|
22 |
} |
|
23 |
|
|
24 |
@Override |
|
25 |
public String getName() { |
|
26 |
return this.name; |
|
27 |
} |
|
28 |
|
|
29 |
@Override |
|
30 |
public Class getClassOfElements() { |
|
31 |
return this.classOfElements; |
|
32 |
} |
|
33 |
|
|
34 |
private MutablePair<String, Object> getElement(String name) { |
|
35 |
if( StringUtils.isEmpty(name) ) { |
|
36 |
return null; |
|
37 |
} |
|
38 |
for (Pair<String, Object> element : this.elements) { |
|
39 |
if( name.equalsIgnoreCase(element.getKey()) ) { |
|
40 |
return (MutablePair<String, Object>) element; |
|
41 |
} |
|
42 |
} |
|
43 |
return null; |
|
44 |
} |
|
45 |
|
|
46 |
@Override |
|
47 |
public boolean contains(String name) { |
|
48 |
Pair<String, Object> element = this.getElement(name); |
|
49 |
return element!=null; |
|
50 |
} |
|
51 |
|
|
52 |
@Override |
|
53 |
public void put(String name, Object obj) { |
|
54 |
if( !this.classOfElements.isInstance(obj) ) { |
|
55 |
throw new IllegalArgumentException("The object can't be of class "+this.classOfElements.getName()+"."); |
|
56 |
} |
|
57 |
MutablePair<String, Object> element = this.getElement(name); |
|
58 |
if( element == null ) { |
|
59 |
element = new MutablePair<>(name,obj); |
|
60 |
this.elements.add(element); |
|
61 |
this.elements.sort(new Comparator<Pair<String, Object>>() { |
|
62 |
@Override |
|
63 |
public int compare(Pair<String, Object> o1, Pair<String, Object> o2) { |
|
64 |
return o1.compareTo(o2); |
|
65 |
} |
|
66 |
}); |
|
67 |
} else { |
|
68 |
element.setValue(obj); |
|
69 |
} |
|
70 |
} |
|
71 |
|
|
72 |
@Override |
|
73 |
public Object get(String name) { |
|
74 |
Pair<String, Object> element = this.getElement(name); |
|
75 |
if( element == null ) { |
|
76 |
return null; |
|
77 |
} |
|
78 |
return element.getValue(); |
|
79 |
} |
|
80 |
|
|
81 |
@Override |
|
82 |
public boolean remove(String name) { |
|
83 |
Pair<String, Object> element = this.getElement(name); |
|
84 |
if( element == null ) { |
|
85 |
return false; |
|
86 |
} |
|
87 |
return this.elements.remove(element); |
|
88 |
} |
|
89 |
|
|
90 |
@Override |
|
91 |
public List<Pair<String, Object>> asList() { |
|
92 |
return Collections.unmodifiableList(elements); |
|
93 |
} |
|
94 |
|
|
95 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.impl/src/main/java/org/gvsig/temporarystorage/impl/TemporaryStorageManagerImplLibrary.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage.impl; |
|
2 |
|
|
3 |
|
|
4 |
import org.gvsig.temporarystorage.TemporaryStorageLibrary; |
|
5 |
import org.gvsig.temporarystorage.TemporaryStorageLocator; |
|
6 |
import org.gvsig.tools.library.AbstractLibrary; |
|
7 |
import org.gvsig.tools.library.LibraryException; |
|
8 |
|
|
9 |
public class TemporaryStorageManagerImplLibrary extends AbstractLibrary { |
|
10 |
|
|
11 |
@Override |
|
12 |
public void doRegistration() { |
|
13 |
registerAsImplementationOf(TemporaryStorageLibrary.class); |
|
14 |
} |
|
15 |
|
|
16 |
@Override |
|
17 |
protected void doInitialize() throws LibraryException { |
|
18 |
TemporaryStorageLocator.registerManager(DefaultTemporaryStorageManager.class); |
|
19 |
} |
|
20 |
|
|
21 |
@Override |
|
22 |
protected void doPostInitialize() throws LibraryException { |
|
23 |
|
|
24 |
} |
|
25 |
} |
|
26 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.impl/src/main/java/org/gvsig/temporarystorage/impl/DefaultTemporaryStorageManager.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage.impl; |
|
2 |
|
|
3 |
import java.util.HashMap; |
|
4 |
import java.util.Iterator; |
|
5 |
import java.util.Map; |
|
6 |
import org.gvsig.temporarystorage.TemporaryStorageGroup; |
|
7 |
import org.gvsig.temporarystorage.TemporaryStorageManager; |
|
8 |
|
|
9 |
public class DefaultTemporaryStorageManager implements TemporaryStorageManager { |
|
10 |
|
|
11 |
private final Map<String,TemporaryStorageGroup> groups; |
|
12 |
|
|
13 |
public DefaultTemporaryStorageManager() { |
|
14 |
this.groups = new HashMap<>(); |
|
15 |
} |
|
16 |
|
|
17 |
@Override |
|
18 |
public TemporaryStorageGroup get(String groupName) { |
|
19 |
return this.groups.get(groupName); |
|
20 |
} |
|
21 |
|
|
22 |
@Override |
|
23 |
public boolean contains(String groupName) { |
|
24 |
return this.groups.containsKey(groupName); |
|
25 |
} |
|
26 |
|
|
27 |
@Override |
|
28 |
public TemporaryStorageGroup create(String groupName) { |
|
29 |
return this.create(groupName, Object.class); |
|
30 |
} |
|
31 |
|
|
32 |
@Override |
|
33 |
public TemporaryStorageGroup create(String groupName, Class classOfElements) { |
|
34 |
TemporaryStorageGroup group = this.groups.get(groupName); |
|
35 |
if( group!=null ) { |
|
36 |
return group; |
|
37 |
} |
|
38 |
group = new DefaultTemporaryStorageGroup(groupName, classOfElements); |
|
39 |
this.groups.put(groupName, group); |
|
40 |
return group; |
|
41 |
} |
|
42 |
|
|
43 |
@Override |
|
44 |
public Iterator<TemporaryStorageGroup> iterator() { |
|
45 |
return this.groups.values().iterator(); |
|
46 |
} |
|
47 |
|
|
48 |
@Override |
|
49 |
public boolean remove(String groupName) { |
|
50 |
return this.groups.remove(groupName)!=null; |
|
51 |
} |
|
52 |
|
|
53 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.impl/pom.xml | ||
---|---|---|
1 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
2 |
<modelVersion>4.0.0</modelVersion> |
|
3 |
<artifactId>org.gvsig.temporarystorage.lib.impl</artifactId> |
|
4 |
<name>org.gvsig.temporarystorage.lib.impl</name> |
|
5 |
<parent> |
|
6 |
<groupId>org.gvsig</groupId> |
|
7 |
<artifactId>org.gvsig.temporarystorage.lib</artifactId> |
|
8 |
<version>2.0.221-SNAPSHOT</version> |
|
9 |
</parent> |
|
10 |
<groupId>org.gvsig</groupId> |
|
11 |
<dependencies> |
|
12 |
<dependency> |
|
13 |
<groupId>org.gvsig</groupId> |
|
14 |
<artifactId>org.gvsig.temporarystorage.lib.api</artifactId> |
|
15 |
<scope>compile</scope> |
|
16 |
</dependency> |
|
17 |
</dependencies> |
|
18 |
</project> |
|
0 | 19 |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/src/main/resources/META-INF/services/org.gvsig.tools.library.Library | ||
---|---|---|
1 |
org.gvsig.temporarystorage.TemporaryStorageManagerLibrary |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/src/main/java/org/gvsig/temporarystorage/TemporaryStorageManager.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage; |
|
2 |
|
|
3 |
import java.util.Iterator; |
|
4 |
|
|
5 |
public interface TemporaryStorageManager extends Iterable<TemporaryStorageGroup> { |
|
6 |
|
|
7 |
/** |
|
8 |
* Si existe lo devuelbe, si no falla. |
|
9 |
* @param groupName |
|
10 |
* @return |
|
11 |
*/ |
|
12 |
public TemporaryStorageGroup get(String groupName); |
|
13 |
|
|
14 |
public boolean contains(String groupName); |
|
15 |
|
|
16 |
/** |
|
17 |
* Si no existe crea el grupo y lo devuelbe, y si ya existe lo devuelbe sin |
|
18 |
* crear nada. |
|
19 |
* @param groupName |
|
20 |
* @return |
|
21 |
*/ |
|
22 |
public TemporaryStorageGroup create(String groupName); |
|
23 |
|
|
24 |
public TemporaryStorageGroup create(String groupName, Class classOfElements); |
|
25 |
|
|
26 |
@Override |
|
27 |
public Iterator<TemporaryStorageGroup> iterator(); |
|
28 |
|
|
29 |
/** |
|
30 |
* |
|
31 |
* @param groupName |
|
32 |
* @return |
|
33 |
*/ |
|
34 |
public boolean remove(String groupName); |
|
35 |
|
|
36 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/src/main/java/org/gvsig/temporarystorage/TemporaryStorageGroup.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage; |
|
2 |
|
|
3 |
import java.util.List; |
|
4 |
import org.apache.commons.lang3.tuple.Pair; |
|
5 |
|
|
6 |
public interface TemporaryStorageGroup { |
|
7 |
|
|
8 |
public String getName(); |
|
9 |
|
|
10 |
public Class getClassOfElements(); |
|
11 |
|
|
12 |
public boolean contains(String name); |
|
13 |
|
|
14 |
public void put(String name, Object obj); |
|
15 |
|
|
16 |
/** |
|
17 |
* return the object or null if not exists |
|
18 |
* @param name |
|
19 |
* @return |
|
20 |
*/ |
|
21 |
public Object get(String name); |
|
22 |
|
|
23 |
public boolean remove(String name); |
|
24 |
|
|
25 |
public List<Pair<String, Object>> asList(); |
|
26 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/src/main/java/org/gvsig/temporarystorage/TemporaryStorageLocator.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage; |
|
2 |
|
|
3 |
import org.gvsig.tools.locator.AbstractLocator; |
|
4 |
import org.gvsig.tools.locator.LocatorException; |
|
5 |
|
|
6 |
|
|
7 |
public class TemporaryStorageLocator extends AbstractLocator { |
|
8 |
|
|
9 |
private static final String LOCATOR_NAME = "TemporaryStorageLocator"; |
|
10 |
|
|
11 |
public static final String MANAGER_NAME = "TemporaryStorageManager"; |
|
12 |
|
|
13 |
private static final String MANAGER_DESCRIPTION = "TemporaryStorage of gvSIG"; |
|
14 |
|
|
15 |
/** |
|
16 |
* Unique instance. |
|
17 |
*/ |
|
18 |
private static final TemporaryStorageLocator instance = new TemporaryStorageLocator(); |
|
19 |
|
|
20 |
/** |
|
21 |
* Return the singleton instance. |
|
22 |
* |
|
23 |
* @return the singleton instance |
|
24 |
*/ |
|
25 |
public static TemporaryStorageLocator getInstance() { |
|
26 |
return instance; |
|
27 |
} |
|
28 |
|
|
29 |
/** |
|
30 |
* Returns the Locator name. |
|
31 |
* |
|
32 |
* @return String containing the locator name. |
|
33 |
*/ |
|
34 |
@Override |
|
35 |
public String getLocatorName() { |
|
36 |
return LOCATOR_NAME; |
|
37 |
} |
|
38 |
|
|
39 |
public static TemporaryStorageManager getManager() throws LocatorException { |
|
40 |
return (TemporaryStorageManager) getInstance().get(MANAGER_NAME); |
|
41 |
} |
|
42 |
|
|
43 |
public static void registerManager(Class clazz) { |
|
44 |
getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz); |
|
45 |
} |
|
46 |
|
|
47 |
public static void registerDefaultManager(Class clazz) { |
|
48 |
getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz); |
|
49 |
} |
|
50 |
|
|
51 |
} |
|
0 | 52 |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/src/main/java/org/gvsig/temporarystorage/TemporaryStorageLibrary.java | ||
---|---|---|
1 |
package org.gvsig.temporarystorage; |
|
2 |
|
|
3 |
import org.gvsig.tools.ToolsLibrary; |
|
4 |
import org.gvsig.tools.library.AbstractLibrary; |
|
5 |
import org.gvsig.tools.library.LibraryException; |
|
6 |
|
|
7 |
public class TemporaryStorageLibrary extends AbstractLibrary { |
|
8 |
|
|
9 |
@Override |
|
10 |
public void doRegistration() { |
|
11 |
registerAsAPI(TemporaryStorageLibrary.class); |
|
12 |
require(ToolsLibrary.class); |
|
13 |
} |
|
14 |
|
|
15 |
@Override |
|
16 |
protected void doInitialize() throws LibraryException { |
|
17 |
} |
|
18 |
|
|
19 |
@Override |
|
20 |
protected void doPostInitialize() throws LibraryException { |
|
21 |
|
|
22 |
} |
|
23 |
} |
|
24 |
|
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.temporarystorage/org.gvsig.temporarystorage.lib/org.gvsig.temporarystorage.lib.api/pom.xml | ||
---|---|---|
1 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> |
|
2 |
<modelVersion>4.0.0</modelVersion> |
|
3 |
<groupId>org.gvsig</groupId> |
|
4 |
<artifactId>org.gvsig.temporarystorage.lib.api</artifactId> |
|
5 |
<name>org.gvsig.temporarystorage.lib.api</name> |
|
6 |
<parent> |
|
7 |
<groupId>org.gvsig</groupId> |
|
8 |
<artifactId>org.gvsig.temporarystorage.lib</artifactId> |
|
9 |
<version>2.0.221-SNAPSHOT</version> |
|
10 |
</parent> |
|
11 |
|
|
12 |
<build> |
|
13 |
<plugins> |
|
14 |
<plugin> |
|
15 |
<groupId>org.apache.maven.plugins</groupId> |
|
16 |
<artifactId>maven-jar-plugin</artifactId> |
|
17 |
<configuration> |
|
18 |
</configuration> |
|
19 |
<executions> |
|
20 |
<!-- Generates a jar file only with the test classes --> |
|
21 |
<execution> |
|
22 |
<goals> |
|
23 |
<goal>test-jar</goal> |
|
24 |
</goals> |
|
25 |
</execution> |
|
26 |
</executions> |
|
27 |
</plugin> |
|
28 |
</plugins> |
|
29 |
</build> |
|
30 |
|
|
31 |
<dependencies> |
|
32 |
<dependency> |
|
33 |
<groupId>org.gvsig</groupId> |
|
34 |
<artifactId>org.gvsig.tools.lib</artifactId> |
|
35 |
<scope>compile</scope> |
|
36 |
</dependency> |
|
37 |
|
|
38 |
</dependencies> |
|
39 |
</project> |
|
0 | 40 |
Also available in: Unified diff