1 package uba.db;
2
3 import java.io.Serializable;
4
5 /***
6 * Genera ids númericos en secuencia, partiendo de un número.
7 *
8 * @version $Revision: 1.1 $
9 */
10 public class SimpleNumberSequenceIdGenerator implements IdGenerator {
11 /***
12 * Número inicial utilizado por default.
13 */
14 public static final int DEFAULT_SEQUENCE_START = 1;
15
16 private int lastId;
17
18 /***
19 * Este constructor es equivalente a:
20 * SimpleNumberSequenceIdGenerator(DEFAULT_SEQUENCE_START)
21 */
22 public SimpleNumberSequenceIdGenerator() {
23 this(DEFAULT_SEQUENCE_START);
24 }
25
26 /***
27 * Crea una nueva instancia que generará ids númericos a partir del número dado.
28 *
29 * @param start número apartir del cual se generaran los ids.
30 */
31 public SimpleNumberSequenceIdGenerator(int start) {
32 lastId = start;
33 }
34
35 /***
36 * Cada vez que se llama este método se retorna un id númerico y se incrementa el
37 * contador interno para retornar el siguiente número en la próxima llamada.
38 *
39 * @return una instancia de {@link Integer}
40 */
41 public synchronized Serializable nextId() {
42 return new Integer(lastId++);
43 }
44 }