org.fourthline.cling.model.types
Class UDN

java.lang.Object
  extended by org.fourthline.cling.model.types.UDN

public class UDN
extends Object

A unique device name.

UDA 1.0 does not specify a UUID format, however, UDA 1.1 specifies a format that is compatible with java.util.UUID variant 4. You can use any identifier string you like.

You'll most likely need the uniqueSystemIdentifier(String) method sooner or later.

Author:
Christian Bauer

Field Summary
static String PREFIX
           
 
Constructor Summary
UDN(String identifierString)
           
UDN(UUID uuid)
           
 
Method Summary
 boolean equals(Object o)
           
 String getIdentifierString()
           
 int hashCode()
           
 boolean isUDA11Compliant()
           
 String toString()
           
static UDN uniqueSystemIdentifier(String salt)
          Generates a global unique identifier that is the same every time this method is invoked on the same machine.
static UDN valueOf(String udnString)
           
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

PREFIX

public static final String PREFIX
See Also:
Constant Field Values
Constructor Detail

UDN

public UDN(String identifierString)
Parameters:
identifierString - The identifier string without the "uuid:" prefix.

UDN

public UDN(UUID uuid)
Method Detail

isUDA11Compliant

public boolean isUDA11Compliant()

getIdentifierString

public String getIdentifierString()

valueOf

public static UDN valueOf(String udnString)

uniqueSystemIdentifier

public static UDN uniqueSystemIdentifier(String salt)
Generates a global unique identifier that is the same every time this method is invoked on the same machine.

This method discovers various pieces of information about the local system such as hostname, MAC address, OS name and version. It then combines this information with the given salt to generate a globally unique identifier. In other words, every time you call this method with the same salt on the same machine, you get the same identifier. If you use the same salt on a different machine, a different identifier will be generated.

Note for Android users: This method does not generate unique identifiers on Android devices and will throw an exception. We can't get details such as the hostname or MAC address on Android. Instead, construct a UDN with new UDN(UUID). When your application is first started, generate all UUIDs needed for your UPnP devices and store them in your Android preferences. Then, use the stored UUID to create a UDN every time your application starts.

Control points can remember your device's identifier, it will and should be the same every time your device is powered up.

Parameters:
salt - An arbitrary string that uniquely identifies the devices on the current system, e.g. "MyMediaServer".
Returns:
A global unique identifier, stable for the current system and salt.

toString

public String toString()
Overrides:
toString in class Object

equals

public boolean equals(Object o)
Overrides:
equals in class Object

hashCode

public int hashCode()
Overrides:
hashCode in class Object


Copyright © 2013 4th Line GmbH, Switzerland. All Rights Reserved.