IzUUID

izumi.fundamentals.platform.uuid.IzUUID
See theIzUUID companion trait
object IzUUID extends IzUUID, IzUUIDImpl

Attributes

Companion
trait
Graph
Supertypes
trait IzUUIDImpl
trait IzUUID
class Object
trait Matchable
class Any
Show all
Self type
IzUUID.type

Members list

Value members

Inherited methods

def decompose(uuid: UUID): Array[Byte]

decomposes a uuid into raw bytes.

decomposes a uuid into raw bytes.

Attributes

Inherited from:
IzUUIDImpl
final def generateRandomUUID(): UUID

Attributes

Inherited from:
IzUUIDPlatformSpecific
def generateTimeUUID(): UUID

Creates a type 1 UUID (time-based UUID).

Creates a type 1 UUID (time-based UUID).

Attributes

Returns

a UUID instance

Inherited from:
IzUUIDImpl
def generateTimeUUIDBytes(): Array[Byte]

Returns a 16 byte representation of a type 1 UUID (a time-based UUID), based on the current system time.

Returns a 16 byte representation of a type 1 UUID (a time-based UUID), based on the current system time.

Attributes

Returns

a type 1 UUID represented as a byte[]

Inherited from:
IzUUIDImpl
def getAdjustedTimestamp(uuid: UUID): Long

Returns a milliseconds-since-epoch value for a type-1 UUID.

Returns a milliseconds-since-epoch value for a type-1 UUID.

Value parameters

uuid

a type-1 (time-based) UUID

Attributes

Returns

the number of milliseconds since the unix epoch

Throws
IllegalArgumentException

if the UUID is not version 1

Inherited from:
IzUUIDImpl
def getRandomTimeUUIDFromMicros(whenInMicros: Long): UUID

Similar to [[getTimeUUIDFromMicros]], but randomize (using SecureRandom) the clock and sequence.

Similar to [[getTimeUUIDFromMicros]], but randomize (using SecureRandom) the clock and sequence.

If you can guarantee that the whenInMicros argument is unique (for this JVM instance) for every call, then you should prefer [[getTimeUUIDFromMicros]] which is faster. If you can't guarantee this however, this method will ensure the returned UUID are still unique (accross calls) through randomization.

Value parameters

whenInMicros

a unix time in microseconds.

Attributes

Returns

a new UUID { @code id} such that { @code microsTimestamp(id) == whenInMicros}. The UUID returned by different calls will be unique even if { @code whenInMicros} is not.

Inherited from:
IzUUIDImpl
def getTimeUUID(when: Long, nanos: Long, clockSeqAndNode: Long): UUID

Attributes

Inherited from:
IzUUIDImpl
def getTimeUUID(when: Long, nanos: Long): UUID

Attributes

Inherited from:
IzUUIDImpl
def getTimeUUID(when: Long): UUID

Creates a type 1 UUID (time-based UUID) with the timestamp of @param when, in milliseconds.

Creates a type 1 UUID (time-based UUID) with the timestamp of @param when, in milliseconds.

Attributes

Returns

a UUID instance

Inherited from:
IzUUIDImpl
def getTimeUUIDBytes(timeMillis: Long, nanos: Int): Array[Byte]

Converts a 100-nanoseconds precision timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).

Converts a 100-nanoseconds precision timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).

To specify a 100-nanoseconds precision timestamp, one should provide a milliseconds timestamp and a number 0 Warning: This method is not guaranteed to return unique UUIDs; Multiple invocations using identical timestamps will result in identical UUIDs.

Attributes

Returns

a type 1 UUID represented as a byte[]

Inherited from:
IzUUIDImpl
def getTimeUUIDBytes(timeMillis: Long): Array[Byte]

Converts a milliseconds-since-epoch timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).

Converts a milliseconds-since-epoch timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).

Deprecated: This method goes again the principle of a time UUID and should not be used. For queries based on timestamp, minTimeUUID() and maxTimeUUID() can be used but this method has questionable usefulness. This is only kept because CQL2 uses it (see TimeUUID.fromStringCQL2) and we don't want to break compatibility.

Warning: This method is not guaranteed to return unique UUIDs; Multiple invocations using identical timestamps will result in identical UUIDs.

Attributes

Returns

a type 1 UUID represented as a byte[]

Inherited from:
IzUUIDImpl
def getTimeUUIDFromMicros(whenInMicros: Long): UUID

Returns a version 1 UUID using the provided timestamp and the local clock and sequence.

Returns a version 1 UUID using the provided timestamp and the local clock and sequence.

Note that this method is generally only safe to use if you can guarantee that the provided parameter is unique across calls (otherwise the returned UUID won't be unique accross calls).

Value parameters

whenInMicros

a unix time in microseconds.

Attributes

Returns

a new UUID { @code id} such that { @code microsTimestamp(id) == whenInMicros}. Please not that multiple calls to this method with the same value of { @code whenInMicros} will return the same UUID.

Inherited from:
IzUUIDImpl
def getUUID(raw: ByteBuffer): UUID

creates a type 1 uuid from raw bytes.

creates a type 1 uuid from raw bytes.

Attributes

Inherited from:
IzUUIDImpl
protected def makeNode(): Long

Generate the 48-bit node ID for Time UUIDs.

Generate the 48-bit node ID for Time UUIDs.

On JVM, we hash all local network addresses to create a node ID that is unique to this host. Per RFC 4122, since we're not using a real MAC address, we set the multicast bit (bit 0 of the first octet) to indicate this is a randomly/hash-generated node ID.

Attributes

Inherited from:
IzUUIDPlatformSpecific
def maxTimeUUID(timestamp: Long): UUID

Returns the biggest possible type 1 UUID having the provided timestamp.

Returns the biggest possible type 1 UUID having the provided timestamp.

Warning: this method should only be used for querying as this doesn't at all guarantee the uniqueness of the resulting UUID.

Attributes

Inherited from:
IzUUIDImpl
def microsTimestamp(uuid: UUID): Long

Attributes

Returns

microseconds since Unix epoch

Inherited from:
IzUUIDImpl
def minTimeUUID(timestamp: Long): UUID

Returns the smaller possible type 1 UUID having the provided timestamp.

Returns the smaller possible type 1 UUID having the provided timestamp.

Warning: this method should only be used for querying as this doesn't at all guarantee the uniqueness of the resulting UUID.

Attributes

Inherited from:
IzUUIDImpl
def unixTimestamp(uuid: UUID): Long

Attributes

Returns

milliseconds since Unix epoch

Inherited from:
IzUUIDImpl

Inherited fields

final val Zero: UUID

Attributes

Inherited from:
IzUUID
protected val secureRandom: Random

Attributes

Inherited from:
IzUUIDImpl