Interface IdGenerator<T>
- Type Parameters:
T
- the type of identifier produced
- Functional Interface:
- This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.
Long
values, random UUID
s, etc.)
Implementations may or may not guarantee uniqueness, ordering, or repeatability of generated identifiers. Callers should not assume any such guarantees unless documented by the implementation.
Standard implementations can be acquired via these factory methods:
- Author:
- Mark Allen
-
Method Summary
Modifier and TypeMethodDescriptionGenerates an identifier.static IdGenerator
Acquires anIdGenerator
with a default numeric ID range (values will wrap once maximum is reached) and a best-effort local IP prefix.static IdGenerator
withPrefix
(String prefix) Acquires anIdGenerator
with a default numeric ID range (values will wrap once maximum is reached) and the given prefix.static IdGenerator
Acquires anIdGenerator
with the given minimum and maximum ID values (values will wrap once maximum is reached), and a best-effort local IP prefix.static IdGenerator
withRangeAndPrefix
(Long minimumId, Long maximumId, String prefix) Returns aDefaultIdGenerator
with the given minimum and maximum ID values (values will wrap once maximum is reached), and the specified prefix.
-
Method Details
-
generateId
Generates an identifier.Implementations may choose different strategies (sequential, random, host-based, etc.) and are not required to guarantee uniqueness unless explicitly documented.
- Returns:
- the generated identifier (never
null
)
-
withDefaults
Acquires anIdGenerator
with a default numeric ID range (values will wrap once maximum is reached) and a best-effort local IP prefix.Callers should not rely on reference identity; this method may return a new or cached instance.
- Returns:
- an
IdGenerator
with default settings
-
withRange
Acquires anIdGenerator
with the given minimum and maximum ID values (values will wrap once maximum is reached), and a best-effort local IP prefix.Callers should not rely on reference identity; this method may return a new or cached instance.
- Parameters:
minimumId
- the lowest ID that may be generated (inclusive)maximumId
- the highest ID that may be generated (inclusive)- Returns:
- an
IdGenerator
configured with the given range
-
withRangeAndPrefix
@Nonnull static IdGenerator withRangeAndPrefix(@Nonnull Long minimumId, @Nonnull Long maximumId, @Nonnull String prefix) Returns aDefaultIdGenerator
with the given minimum and maximum ID values (values will wrap once maximum is reached), and the specified prefix.Callers should not rely on reference identity; this method may return a new or cached instance.
- Parameters:
minimumId
- the lowest ID that may be generated (inclusive)maximumId
- the highest ID that may be generated (inclusive)prefix
- a string to prepend to the generated numeric ID- Returns:
- an
IdGenerator
configured with the given range and prefix
-
withPrefix
Acquires anIdGenerator
with a default numeric ID range (values will wrap once maximum is reached) and the given prefix.Callers should not rely on reference identity; this method may return a new or cached instance.
- Parameters:
prefix
- a string to prepend to the generated numeric ID- Returns:
- an
IdGenerator
configured with the given prefix
-