Class PersistentKeyGenerator
java.lang.Object
de.hybris.platform.servicelayer.keygenerator.impl.PersistentKeyGenerator
- All Implemented Interfaces:
KeyGenerator
- Direct Known Subclasses:
PrefixablePersistentKeyGenerator,PrefixablePersistentKeyGenerator,PrefixablePersistentKeyGenerator
This implementation is an adapter to the
NumberSeries functionality of the platform for getting unique
numbers in a series persisted via database. It provides several setter methods for configuration of the used number
series like the key of the series at database. It is lazily initialized on first call.- Since:
- 4.0
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intAmount of digits used for one key.protected StringKey of series.protected booleanIs the series numeric or alpha-numeric?protected StringStart value for series (used in case the series is not created yet and at a reset).protected StringTemplate to be applied on generated value -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected NumberSeriesgenerate()Generates a new unique key.generateFor(Object object) Generates a new unique key in relation to given object.voidinit()Deprecated, for removal: This API element is subject to removal in a future version.since 5.0 favour lazy initialization while fetching the sequence for the first timevoidprotected NumberSeriesvoidreset()Resets the key generation so that an already generated key can be generated once again.voidsetDigits(int digits) Sets the amount of digits within one generated key.voidSets the key of the number series to use.voidsetNumeric(boolean numeric) Deprecated, for removal: This API element is subject to removal in a future version.since ages - usesetType(de.hybris.platform.servicelayer.keygenerator.impl.PersistentKeyGenerator.Type)instead.voidvoidsetTemplate(String template) Sets the template of the number series to use.voidSets type of the key generator.
-
Field Details
-
key
Key of series. -
digits
protected int digitsAmount of digits used for one key. -
start
Start value for series (used in case the series is not created yet and at a reset). -
template
Template to be applied on generated value -
numeric
protected boolean numericIs the series numeric or alpha-numeric?
-
-
Constructor Details
-
PersistentKeyGenerator
public PersistentKeyGenerator()
-
-
Method Details
-
initializeKeyGenerator
@PostConstruct public void initializeKeyGenerator() -
generate
Description copied from interface:KeyGeneratorGenerates a new unique key. If this method is called twice it will never return the same key twice (if key A is returned by first call and key B by second call, A does not equals B). A order of returned keys is not guaranteed (depends on implementation). After a call of theKeyGenerator.reset()method the generator is reseted so that a key can be returned which already was returned before callingKeyGenerator.reset().- Specified by:
generatein interfaceKeyGenerator- Returns:
- unique key
-
generateFor
Description copied from interface:KeyGeneratorGenerates a new unique key in relation to given object. The key will be unique overall as inKeyGenerator.generate()method and furthermore it is guaranteed that the key will only be produced for this object (think of a PK which contains the type information, a media PK will not be generated for a product, nevertheless it is unique overall).- Specified by:
generateForin interfaceKeyGenerator- Parameters:
object- object for which a key will be generated- Returns:
- unique key in relation to given object
-
reset
public void reset()Description copied from interface:KeyGeneratorResets the key generation so that an already generated key can be generated once again.- Specified by:
resetin interfaceKeyGenerator
-
init
Deprecated, for removal: This API element is subject to removal in a future version.since 5.0 favour lazy initialization while fetching the sequence for the first timeChecks if a number series with configured key is already existent and creates a new one if not using configured start value. -
lookup
- Throws:
JaloInvalidParameterException
-
createSeriesAfterLookupError
-
setTemplate
Sets the template of the number series to use.- Parameters:
template- number series template
-
setKey
Sets the key of the number series to use.- Parameters:
key- number series key
-
setDigits
public void setDigits(int digits) Sets the amount of digits within one generated key.- Parameters:
digits- amount of digits
-
setStart
Sets the start value for the series in case the series has to be created new at call ofinit()or at areset().- Parameters:
start- start value
-
setNumeric
Deprecated, for removal: This API element is subject to removal in a future version.since ages - usesetType(de.hybris.platform.servicelayer.keygenerator.impl.PersistentKeyGenerator.Type)instead.Sets if the series is numeric or alpha-numeric in case the series has to be created new at call ofinit()or at areset().- Parameters:
numeric- is the series numeric?
-
setType
Sets type of the key generator. Available type are: alphanumeric, numeric and uuid. Alphanumeric and numeric series handling is delegated toNumberSeries- Parameters:
type- type of key generator
-