org.apache.cassandra.utils
Class UUIDGen

java.lang.Object
  extended by org.apache.cassandra.utils.UUIDGen

public class UUIDGen
extends java.lang.Object

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


Method Summary
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 © 2013 The Apache Software Foundation