Class UUID

java.lang.Object
org.jgroups.util.UUID
All Implemented Interfaces:
Comparable<Address>, Address, Constructable<UUID>, SizeStreamable, Streamable
Direct Known Subclasses:
FlagsUUID

public class UUID extends Object implements Address, Constructable<UUID>
Logical address which is unique over space and time.

Copied from java.util.UUID, but unneeded fields from the latter have been removed. UUIDs needs to have a small memory footprint.

  • Field Details

    • mostSigBits

      protected long mostSigBits
    • leastSigBits

      protected long leastSigBits
    • SIZE

      protected static final int SIZE
      See Also:
  • Constructor Details

    • UUID

      public UUID()
    • UUID

      public UUID(long mostSigBits, long leastSigBits)
    • UUID

      public UUID(UUID uuid)
    • UUID

      protected UUID(byte[] data)
      Private constructor which uses a byte array to construct the new UUID
  • Method Details

    • create

      public Supplier<? extends UUID> create()
      Description copied from interface: Constructable
      Creates an instance of the class implementing this interface
      Specified by:
      create in interface Constructable<UUID>
    • randomUUID

      public static UUID randomUUID()
      Static factory to retrieve a type 4 (pseudo randomly generated) UUID. The UUID is generated using a ThreadLocalRandom.
      Returns:
      A randomly generated UUID
    • getLeastSignificantBits

      public long getLeastSignificantBits()
    • getMostSignificantBits

      public long getMostSignificantBits()
      Returns the most significant 64 bits of this UUID's 128 bit value.
      Returns:
      The most significant 64 bits of this UUID's 128 bit value
    • printName

      public static String printName(UUID uuid)
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toStringLong

      public String toStringLong()
      Returns a String object representing this UUID.

      The UUID string representation is as described by this BNF:

       
       UUID                   = <time_low> "-" <time_mid> "-"
                                <time_high_and_version> "-"
                                <variant_and_sequence> "-"
                                <node>
       time_low               = 4*<hexOctet>
       time_mid               = 2*<hexOctet>
       time_high_and_version  = 2*<hexOctet>
       variant_and_sequence   = 2*<hexOctet>
       node                   = 6*<hexOctet>
       hexOctet               = <hexDigit><hexDigit>
       hexDigit               =
             "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9"
             | "a" | "b" | "c" | "d" | "e" | "f"
             | "A" | "B" | "C" | "D" | "E" | "F"
       
      Returns:
      A string representation of this UUID
    • fromString

      public static UUID fromString(String name)
      Creates a UUID from the string standard representation as described in the toString() method.
      Parameters:
      name - A string that specifies a UUID
      Returns:
      A UUID with the specified value
      Throws:
      IllegalArgumentException - If name does not conform to the string representation as described in toString()
    • digits

      protected static String digits(long val, int digits)
      Returns val represented by the specified number of hex digits.
    • hashCode

      public int hashCode()
      Returns a hash code for this UUID.
      Overrides:
      hashCode in class Object
      Returns:
      A hash code value for this UUID
    • equals

      public boolean equals(Object obj)
      Compares this object to the specified object. The result is true if and only if the argument is not null, is a UUID object, and contains the same most- and least significant bits.
      Overrides:
      equals in class Object
      Parameters:
      obj - The object to be compared
      Returns:
      true if the objects are the same; false otherwise
    • compareTo

      public int compareTo(Address other)
      Compares this UUID with the specified UUID.

      The first of two UUIDs is greater than the second if the most significant field in which the UUIDs differ is greater for the first UUID.

      Specified by:
      compareTo in interface Comparable<Address>
      Parameters:
      other - UUID to which this UUID is to be compared
      Returns:
      -1, 0 or 1 as this UUID is less than, equal to, or greater than val
    • compareTo

      public int compareTo(UUID val)
    • writeTo

      public void writeTo(DataOutput out) throws IOException
      Description copied from interface: Streamable
      Write the entire state of the current object (including superclasses) to outstream. Note that the output stream must not be closed
      Specified by:
      writeTo in interface Streamable
      Throws:
      IOException
    • readFrom

      public void readFrom(DataInput in) throws IOException
      Description copied from interface: Streamable
      Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
      Specified by:
      readFrom in interface Streamable
      Throws:
      IOException
    • serializedSize

      public int serializedSize()
      Description copied from interface: SizeStreamable
      Returns the size (in bytes) of the marshalled object
      Specified by:
      serializedSize in interface SizeStreamable
    • copy

      public UUID copy()
    • generateRandomBytes

      public static byte[] generateRandomBytes()
      Generate random bytes and adjusts them for a type-4 UUID