javax.bluetooth
Class UUID

java.lang.Object
  extended byjavax.bluetooth.UUID

public class UUID
extends java.lang.Object

The UUID class defines universally unique identifiers. These 128-bit unsigned integers are guaranteed to be unique across all time and space. Accordingly, an instance of this class is immutable. The Bluetooth specification provides an algorithm describing how a 16-bit or 32-bit UUID could be promoted to a 128-bit UUID. Accordingly, this class provides an interface that assists applications in creating 16-bit, 32-bit, and 128-bit long UUIDs. The methods supported by this class allow equality testing of two UUID objects.

The Bluetooth Assigned Numbers document ( http://www.bluetooth.org/assigned-numbers/sdp.htm) defines a large number of UUIDs for protocols and service classes. The table below provides a short list of the most common UUIDs defined in the Bluetooth Assigned Numbers document.

NameValueSize
Base UUID Value (Used in promoting 16-bit and 32-bit UUIDs to 128-bit UUIDs)0x0000000000001000800000805F9B34FB 128-bit
SDP0x000116-bit
RFCOMM0x000316-bit
OBEX0x000816-bit
HTTP0x000C16-bit
L2CAP0x010016-bit
BNEP0x000F16-bit
Serial Port0x110116-bit
ServiceDiscoveryServerServiceClassID0x1000 16-bit
BrowseGroupDescriptorServiceClassID0x1001 16-bit
PublicBrowseGroup0x100216-bit
OBEX Object Push Profile0x110516-bit
OBEX File Transfer Profile0x110616-bit
Personal Area Networking User0x1115 16-bit
Network Access Point0x111616-bit
Group Network0x111716-bit


Field Summary
static java.lang.String baseUUID
           
static UUID NULL_UUID
           
 
Constructor Summary
UUID()
           
UUID(byte[] uuidBytes)
          Christian Lorenz: Added this for use with DataElement implementation.
UUID(long uuidValue)
          Creates a UUID object from long value uuidValue.
UUID(java.lang.String uuidValue, boolean shortUUID)
          Creates a UUID object from the string provided.
 
Method Summary
static UUID convert16to32(UUID uuid)
           
static UUID convert32to128(UUID uuid)
           
 boolean equals(java.lang.Object value)
          Determines if two UUIDs are equal.
 boolean equals(UUID other)
           
 int hashCode()
          Computes the hash code for this object.
 java.lang.String to32bitsString()
           
 byte[] toByteArray()
           
 byte[] toByteArray128()
          Christian Lorenz: Added this for use with DataElement implementation.
 long toLong()
          Christian Lorenz: Added this for use with equals().
 java.lang.String toString()
          Returns the string representation of the 128-bit UUID object.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

baseUUID

public static final java.lang.String baseUUID
See Also:
Constant Field Values

NULL_UUID

public static final UUID NULL_UUID
Constructor Detail

UUID

public UUID()

UUID

public UUID(byte[] uuidBytes)
Christian Lorenz: Added this for use with DataElement implementation.

Parameters:
uuidBytes -

UUID

public UUID(long uuidValue)
     throws java.lang.IllegalArgumentException
Creates a UUID object from long value uuidValue. A UUID is defined as an unsigned integer whose value can range from [0 to 2128-1]. However, this constructor allows only those values that are in the range of [0 to 232 -1]. Negative values and values in the range of [232, 263 -1] are not allowed and will cause an IllegalArgumentException to be thrown.

Parameters:
uuidValue - the 16-bit or 32-bit value of the UUID
Throws:
java.lang.IllegalArgumentException - if uuidValue is not in the range [0, 232 -1]

UUID

public UUID(java.lang.String uuidValue,
            boolean shortUUID)
     throws java.lang.NullPointerException,
            java.lang.IllegalArgumentException
Creates a UUID object from the string provided. The characters in the string must be from the hexadecimal set [0-9, a-f, A-F]. It is important to note that the prefix "0x" generally used for hex representation of numbers is not allowed. If the string does not have characters from the hexadecimal set, an exception will be thrown. The string length has to be positive and less than or equal to 32. A string length that exceeds 32 is illegal and will cause an exception. Finally, a null input is also considered illegal and causes an exception.

If shortUUID is true, uuidValue represents a 16-bit or 32-bit UUID. If uuidValue is in the range 0x0000 to 0xFFFF then this constructor will create a 16-bit UUID. If uuidValue is in the range 0x000010000 to 0xFFFFFFFF, then this constructor will create a 32-bit UUID. Therefore, uuidValue may only be 8 characters long.

On the other hand, if shortUUID is false, then uuidValue represents a 128-bit UUID. Therefore, uuidValue may only be 32 character long

Parameters:
uuidValue - the string representation of a 16-bit, 32-bit or 128-bit UUID
shortUUID - indicates the size of the UUID to be constructed; true is used to indicate short UUIDs, i.e. either 16-bit or 32-bit; false indicates an 128-bit UUID
Throws:
java.lang.NumberFormatException - if uuidValue has characters that are not defined in the hexadecimal set [0-9, a-f, A-F]
java.lang.IllegalArgumentException - if uuidValue length is zero; if shortUUID is true and uuidValue's length is greater than 8; if shortUUID is false and uuidValue's length is greater than 32
java.lang.NullPointerException - if uuidValue is null
Method Detail

toString

public java.lang.String toString()
Returns the string representation of the 128-bit UUID object. The string being returned represents a UUID that contains characters from the hexadecimal set, [0-9, A-F]. It does not include the prefix "0x" that is generally used for hex representation of numbers. The return value will never be null.

Returns:
the string representation of the UUID

to32bitsString

public java.lang.String to32bitsString()

convert32to128

public static UUID convert32to128(UUID uuid)

convert16to32

public static UUID convert16to32(UUID uuid)
                          throws java.lang.Exception
Throws:
java.lang.Exception

toByteArray128

public byte[] toByteArray128()
                      throws java.lang.Exception
Christian Lorenz: Added this for use with DataElement implementation.

Throws:
java.lang.Exception

toByteArray

public byte[] toByteArray()

toLong

public long toLong()
Christian Lorenz: Added this for use with equals().


equals

public boolean equals(java.lang.Object value)
Determines if two UUIDs are equal. They are equal if their 128 bit values are the same. This method will return false if value is null or is not a UUID object.

Parameters:
value - the object to compare to
Returns:
true if the 128 bit values of the two objects are equal, otherwise false

equals

public boolean equals(UUID other)

hashCode

public int hashCode()
Computes the hash code for this object. This method retains the same semantic contract as defined in the class java.lang.Object while overriding the implementation.

Returns:
the hash code for this object