r01f.guids
Class HighLowGUIDDispenser
java.lang.Object
r01f.guids.HighLowGUIDDispenser
- All Implemented Interfaces:
- GUIDDispenser
public class HighLowGUIDDispenser
- extends java.lang.Object
- implements GUIDDispenser
Maneja un GUID en base a un valor HIGH, un valor LOW que se incrementa
localmente y un identificador unico de dominio: HIGH + LOW + UniqueID
El GUIDDispenser puede utilizarse en los siguientes casos:
CASO 1: Los GUIDs generados han de ser unicos SIEMPRE
-----------------------------------------------------
En este caso hay que almacenar el valor HIGH en base de datos ya que
si se reinicia el dispenser (reinicio de la maquina, etc) el siguiente
guid ha de ser unico y para ello el valor de high ha de guardarse...
Un ejemplo de este caso son los oid de los objetos que van a utilizarse
como clave primaria de las tablas en bd
CASO 2: Los UIDs generados han de ser unicos EN LA SESION
---------------------------------------------------------
En este caso no importa que si se reinicia el dispense (reinicio de la maquina, etc)
se repitan GUIDs.
Un ejemplo de este caso son los identificadores de token para las
peticiones de paginas html.
|
Method Summary |
private boolean |
_moveToNextHighKey()
Incrementa en uno el valor actual de la parte high, y luego
a al objeto de persistencia para actualizar el valor almacenado |
private static java.lang.String |
_xPathBase(java.lang.String sequenceName)
|
java.lang.String |
generateGUID()
Obtiene un guid |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
_highLowGUIDPersistFactories
private java.util.Map<java.lang.String,HighLowGUIDPersist> _highLowGUIDPersistFactories
- Mapa de factorías de objetos HighLowGUIDPersist que relaciona el ID del HighLowGUIDPersist con
su factoría
IMPORTANTE!! El mapa de factorías se "cablea" en el módulo GUIDDispenserGuiceModule,
así que cuando aparece una nueva implementación de un HighLowGUIDPersist,
hay que incluirlo en la clase GUIDDispenserGuiceModule
_dispDef
private GUIDDispenserDef _dispDef
_guidPersist
private HighLowGUIDPersist _guidPersist
_currHighKey
private HighLowKey _currHighKey
_currLowKey
private HighLowKey _currLowKey
HighLowGUIDDispenser
@Inject
public HighLowGUIDDispenser(GUIDDispenserDef dispDef,
java.util.Map<java.lang.String,HighLowGUIDPersist> highLowGUIDPersistFactories)
_xPathBase
private static java.lang.String _xPathBase(java.lang.String sequenceName)
generateGUID
public java.lang.String generateGUID()
- Description copied from interface:
GUIDDispenser
- Obtiene un guid
- Specified by:
generateGUID in interface GUIDDispenser
- Returns:
- el guid generado o null si NO se puede generar un guid
_moveToNextHighKey
private boolean _moveToNextHighKey()
- Incrementa en uno el valor actual de la parte high, y luego
a al objeto de persistencia para actualizar el valor almacenado