org.fourthline.cling.model.types

## Class UDN

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

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `PREFIX`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `UDN(String identifierString)`
    `UDN(UUID uuid)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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 © 2014 4th Line GmbH, Switzerland. All Rights Reserved.