javax.bluetooth
Class UUID

java.lang.Object
  extended by javax.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/foundry/assignnumb/document/service_discovery) 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


Constructor Summary
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
 boolean equals(java.lang.Object value)
          Determines if two UUIDs are equal.
 int hashCode()
          Computes the hash code for this object.
 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
 

Constructor Detail

UUID

public UUID(long uuidValue)
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)
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. Leading zeros MUST be removed; for example, the string 00000000000000000000000000000000 will not be returned to represent 0. The return value will never be null.

Overrides:
toString in class java.lang.Object
Returns:
the string representation of the UUID

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.

Overrides:
equals in class java.lang.Object
Parameters:
value - the object to compare to
Returns:
true if the 128 bit values of the two objects are equal, otherwise false

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.

Overrides:
hashCode in class java.lang.Object
Returns:
the hash code for this object