Revision 43782

View differences:

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