org.apache.cassandra.utils

## Class UUIDGen

- java.lang.Object
- - org.apache.cassandra.utils.UUIDGen

    public class UUIDGen
    extends java.lang.Object

The goods are here: www.ietf.org/rfc/rfc4122.txt.

### Method Summary

Methods
`static byte[]` `decompose(java.util.UUID uuid)` decomposes a uuid into raw bytes.
`static long` `getAdjustedTimestamp(java.util.UUID uuid)` Returns a milliseconds-since-epoch value for a type-1 UUID.
`static java.util.UUID` `getTimeUUID()` Creates a type 1 UUID (time-based UUID).
`static java.util.UUID` `getTimeUUID(long when)` Creates a type 1 UUID (time-based UUID) with the timestamp of @param when, in milliseconds.
`static byte[]` `getTimeUUIDBytes()` Returns a 16 byte representation of a type 1 UUID (a time-based UUID), based on the current system time.
`static byte[]` `getTimeUUIDBytes(long timeMillis)` Converts a milliseconds-since-epoch timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).
`static byte[]` `getTimeUUIDBytes(long timeMillis, int nanos)` Converts a 100-nanoseconds precision timestamp into the 16 byte representation of a type 1 UUID (a time-based UUID).
`static java.util.UUID` `getUUID(java.nio.ByteBuffer raw)` creates a type 1 uuid from raw bytes.
`static java.util.UUID` `maxTimeUUID(long timestamp)` Returns the biggest possible type 1 UUID having the provided timestamp.
`static long` `microsTimestamp(java.util.UUID uuid)`
`static java.util.UUID` `minTimeUUID(long timestamp)` Returns the smaller possible type 1 UUID having the provided timestamp.
`static long` `unixTimestamp(java.util.UUID uuid)`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Method Detail

#### getTimeUUID

    public static java.util.UUID getTimeUUID()

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

Returns:
  a UUID instance

#### getTimeUUID

    public static java.util.UUID getTimeUUID(long when)

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

Returns:
  a UUID instance

#### getUUID

    public static java.util.UUID getUUID(java.nio.ByteBuffer raw)

creates a type 1 uuid from raw bytes.

#### decompose

    public static byte[] decompose(java.util.UUID uuid)

decomposes a uuid into raw bytes.

#### getTimeUUIDBytes

    public static byte[] getTimeUUIDBytes()

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

Returns:
  a type 1 UUID represented as a byte[]

#### minTimeUUID

    public static java.util.UUID minTimeUUID(long 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.

#### maxTimeUUID

    public static java.util.UUID maxTimeUUID(long 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.

#### unixTimestamp

    public static long unixTimestamp(java.util.UUID uuid)

Parameters:
  `uuid` -
Returns:
  milliseconds since Unix epoch

#### microsTimestamp

    public static long microsTimestamp(java.util.UUID uuid)

Parameters:
  `uuid` -
Returns:
  microseconds since Unix epoch

#### getTimeUUIDBytes

    public static byte[] getTimeUUIDBytes(long timeMillis)

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.

Parameters:
  `timeMillis` -
Returns:
  a type 1 UUID represented as a byte[]

#### getTimeUUIDBytes

    public static byte[] getTimeUUIDBytes(long timeMillis,
                          int nanos)

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 <= n < 10000 such that n*100 is the number of nanoseconds within that millisecond.

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

Returns:
  a type 1 UUID represented as a byte[]

#### getAdjustedTimestamp

    public static long getAdjustedTimestamp(java.util.UUID uuid)

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

Parameters:
  `uuid` - a type-1 (time-based) UUID
Returns:
  the number of milliseconds since the unix epoch
Throws:
  `java.lang.IllegalArgumentException` - if the UUID is not version 1