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
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