org.jgroups.util
Class UUID

java.lang.Object
  extended by org.jgroups.util.UUID
All Implemented Interfaces:
java.io.Externalizable, java.io.Serializable, java.lang.Cloneable, java.lang.Comparable<Address>, Address, Streamable

public class UUID
extends java.lang.Object
implements Address, Streamable, java.lang.Comparable<Address>

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.

Version:
$Id: UUID.java,v 1.4 2010/04/07 07:09:09 belaban Exp $
Author:
Bela Ban
See Also:
Serialized Form

Field Summary
 
Fields inherited from interface org.jgroups.Address
IP_ADDR, NULL, UUID_ADDR
 
Constructor Summary
UUID()
           
UUID(long mostSigBits, long leastSigBits)
           
 
Method Summary
static void add(UUID uuid, java.lang.String logical_name)
           
 java.lang.Object clone()
           
 int compareTo(Address other)
          Compares this UUID with the specified UUID.
 boolean equals(java.lang.Object obj)
          Compares this object to the specified object.
static java.lang.String get(Address logical_addr)
           
 byte[] getAdditionalData()
          Deprecated. Will be removed in 3.0. This was only added to be backwards compatible with 2.7
 long getLeastSignificantBits()
           
 long getMostSignificantBits()
          Returns the most significant 64 bits of this UUID's 128 bit value.
 int hashCode()
          Returns a hash code for this UUID.
 boolean isMulticastAddress()
          Checks whether this is an address that represents multiple destinations; e.g., a class D address in the Internet.
static java.lang.String printCache()
           
static UUID randomUUID()
          Static factory to retrieve a type 4 (pseudo randomly generated) UUID.
 void readExternal(java.io.ObjectInput in)
           
 void readFrom(java.io.DataInputStream in)
          Read the state of the current object (including superclasses) from instream Note that the input stream must not be closed
static void remove(UUID uuid)
           
static void removeAll(java.util.Collection<Address> mbrs)
           
static void retainAll(java.util.Collection<Address> logical_addrs)
           
 void setAdditionalData(byte[] additional_data)
          Deprecated. Will be removed in 3.0. This was only added to be backwards compatible with 2.7
 int size()
          Returns serialized size of this address
 java.lang.String toString()
           
 java.lang.String toStringLong()
          Returns a String object representing this UUID.
 void writeExternal(java.io.ObjectOutput out)
           
 void writeTo(java.io.DataOutputStream out)
          Write the entire state of the current object (including superclasses) to outstream.
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UUID

public UUID()

UUID

public UUID(long mostSigBits,
            long leastSigBits)
Method Detail

add

public static void add(UUID uuid,
                       java.lang.String logical_name)

get

public static java.lang.String get(Address logical_addr)

remove

public static void remove(UUID uuid)

removeAll

public static void removeAll(java.util.Collection<Address> mbrs)

retainAll

public static void retainAll(java.util.Collection<Address> logical_addrs)

printCache

public static java.lang.String printCache()

getAdditionalData

public final byte[] getAdditionalData()
Deprecated. Will be removed in 3.0. This was only added to be backwards compatible with 2.7

Returns the additional_data.

Returns:
byte[]
Since:
2.8

setAdditionalData

public final void setAdditionalData(byte[] additional_data)
Deprecated. Will be removed in 3.0. This was only added to be backwards compatible with 2.7

Sets the additional_data.

Parameters:
additional_data - The additional_data to set
Since:
2.8

randomUUID

public static UUID randomUUID()
Static factory to retrieve a type 4 (pseudo randomly generated) UUID. The UUID is generated using a cryptographically strong pseudo random number generator.

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

toString

public java.lang.String toString()
Overrides:
toString in class java.lang.Object

toStringLong

public java.lang.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

hashCode

public int hashCode()
Returns a hash code for this UUID.

Overrides:
hashCode in class java.lang.Object
Returns:
A hash code value for this UUID

equals

public boolean equals(java.lang.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, has the same variant, and contains the same value, bit for bit, as this UUID.

Overrides:
equals in class java.lang.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 java.lang.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

writeTo

public void writeTo(java.io.DataOutputStream out)
             throws java.io.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:
java.io.IOException

readFrom

public void readFrom(java.io.DataInputStream in)
              throws java.io.IOException,
                     java.lang.IllegalAccessException,
                     java.lang.InstantiationException
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:
java.io.IOException
java.lang.IllegalAccessException
java.lang.InstantiationException

isMulticastAddress

public boolean isMulticastAddress()
Description copied from interface: Address
Checks whether this is an address that represents multiple destinations; e.g., a class D address in the Internet.

Specified by:
isMulticastAddress in interface Address
Returns:
true if this is a multicast address, false if it is a unicast address

size

public int size()
Description copied from interface: Address
Returns serialized size of this address

Specified by:
size in interface Address

clone

public java.lang.Object clone()
                       throws java.lang.CloneNotSupportedException
Overrides:
clone in class java.lang.Object
Throws:
java.lang.CloneNotSupportedException

writeExternal

public void writeExternal(java.io.ObjectOutput out)
                   throws java.io.IOException
Specified by:
writeExternal in interface java.io.Externalizable
Throws:
java.io.IOException

readExternal

public void readExternal(java.io.ObjectInput in)
                  throws java.io.IOException,
                         java.lang.ClassNotFoundException
Specified by:
readExternal in interface java.io.Externalizable
Throws:
java.io.IOException
java.lang.ClassNotFoundException


Copyright © 1998-2009 Bela Ban / Red Hat. All Rights Reserved.