Revision 9512 org.gvsig.online/trunk/org.gvsig.online/org.gvsig.online.lib/org.gvsig.online.lib.impl/src/main/java/org/gvsig/online/lib/impl/RandomCodeGenerator.java

View differences:

RandomCodeGenerator.java
22 22

  
23 23
package org.gvsig.online.lib.impl;
24 24

  
25
import java.util.HashMap;
26
import java.util.Map;
25 27
import java.util.UUID;
26 28
import org.gvsig.online.lib.api.OnlineCodeGenerator;
27 29

  
......
31 33
 */
32 34
public class RandomCodeGenerator implements OnlineCodeGenerator {
33 35
    
34
    private long sequence = 1;
36
    private final Map<String,Long> sequences;
35 37

  
38
    public RandomCodeGenerator() {
39
        this.sequences = new HashMap();
40
    }
41

  
36 42
    @Override
37 43
    public String generateCodeString() {
38 44
        UUID x = UUID.randomUUID();
......
41 47
    }
42 48

  
43 49
    @Override
44
    public long generateCodelong() {
45
        long code = -sequence;
46
        sequence++;
47
        return code;
50
    public long generateCodelong(String entityName) {
51
        long code = sequences.get(entityName);
52
        sequences.put(entityName, code + 1);
53
        return -code;
48 54
    }
49 55

  
56
    @Override
57
    public void initSequence(String entityName, long value) {
58
        sequences.put(entityName, Math.abs(value));
59
    }
60

  
61
    @Override
62
    public boolean isInitialized(String entityName) {
63
        return sequences.get(entityName) != null;
64
    }
65

  
50 66
}

Also available in: Unified diff