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
    Modifier and Type | Method and Description
    --- | ---
    `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 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 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

    - #### 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)

    - #### 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

Copyright © 2014 The Apache Software Foundation