org.fourthline.cling.model.meta

## Class Device<DI extends DeviceIdentity,D extends Device,S extends Service>

- java.lang.Object
- - org.fourthline.cling.model.meta.Device<DI,D,S>

- All Implemented Interfaces:
    Validatable
  Direct Known Subclasses:
    LocalDevice, RemoteDevice

      public abstract class Device<DI extends DeviceIdentity,D extends Device,S extends Service>
      extends Object
      implements Validatable

  Describes either a root or embedded device.
  Author:
    Christian Bauer

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected D[]` | `embeddedDevices`
    `protected S[]` | `services`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `Device(DI identity)`
    `Device(DI identity, DeviceType type, DeviceDetails details, Icon[] icons, S[] services)`
    `Device(DI identity, DeviceType type, DeviceDetails details, Icon[] icons, S[] services, D[] embeddedDevices)`
    `Device(DI identity, UDAVersion version, DeviceType type, DeviceDetails details, Icon[] icons, S[] services, D[] embeddedDevices)`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract Resource[]` | `discoverResources(Namespace namespace)`
    `boolean` | `equals(Object o)`
    `protected Collection<D>` | `find(DeviceType deviceType, D current)`
    `protected Collection<D>` | `find(ServiceType serviceType, D current)`
    `protected D` | `find(UDN udn, D current)`
    `abstract D` | `findDevice(UDN udn)`
    `D[]` | `findDevices(DeviceType deviceType)`
    `D[]` | `findDevices(ServiceType serviceType)`
    `D[]` | `findEmbeddedDevices()`
    `protected Collection<D>` | `findEmbeddedDevices(D current)`
    `Icon[]` | `findIcons()`
    `S` | `findService(ServiceId serviceId)`
    `S` | `findService(ServiceType serviceType)`
    `S[]` | `findServices()`
    `S[]` | `findServices(ServiceType serviceType)`
    `protected Collection<S>` | `findServices(ServiceType serviceType, ServiceId serviceId, D current)`
    `ServiceType[]` | `findServiceTypes()`
    `DeviceDetails` | `getDetails()`
    `DeviceDetails` | `getDetails(RemoteClientInfo info)`
    `String` | `getDisplayString()`
    `abstract D[]` | `getEmbeddedDevices()`
    `Icon[]` | `getIcons()`
    `DI` | `getIdentity()`
    `D` | `getParentDevice()`
    `abstract D` | `getRoot()`
    `abstract S[]` | `getServices()`
    `DeviceType` | `getType()`
    `UDAVersion` | `getVersion()`
    `boolean` | `hasEmbeddedDevices()`
    `int` | `hashCode()`
    `boolean` | `hasIcons()`
    `boolean` | `hasServices()`
    `boolean` | `isFullyHydrated()`
    `boolean` | `isRoot()`
    `abstract S` | `newInstance(ServiceType serviceType, ServiceId serviceId, URI descriptorURI, URI controlURI, URI eventSubscriptionURI, Action<S>[] actions, StateVariable<S>[] stateVariables)`
    `abstract D` | `newInstance(UDN udn, UDAVersion version, DeviceType type, DeviceDetails details, Icon[] icons, S[] services, List<D> embeddedDevices)`
    `abstract S[]` | `newServiceArray(int size)`
    `abstract D[]` | `toDeviceArray(Collection<D> col)`
    `abstract S[]` | `toServiceArray(Collection<S> col)`
    `String` | `toString()`
    `List<ValidationError>` | `validate()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### services

          protected final S extends Service[] services

    - #### embeddedDevices

          protected final D extends Device[] embeddedDevices

  - ### Constructor Detail

    - #### Device

          public Device(DI identity)
                 throws ValidationException

      Throws:
        `ValidationException`

    - #### Device

          public Device(DI identity,
                        DeviceType type,
                        DeviceDetails details,
                        Icon[] icons,
                        S[] services)
                 throws ValidationException

      Throws:
        `ValidationException`

    - #### Device

          public Device(DI identity,
                        DeviceType type,
                        DeviceDetails details,
                        Icon[] icons,
                        S[] services,
                        D[] embeddedDevices)
                 throws ValidationException

      Throws:
        `ValidationException`

    - #### Device

          public Device(DI identity,
                        UDAVersion version,
                        DeviceType type,
                        DeviceDetails details,
                        Icon[] icons,
                        S[] services,
                        D[] embeddedDevices)
                 throws ValidationException

      Throws:
        `ValidationException`

  - ### Method Detail

    - #### getIdentity

          public DI getIdentity()

    - #### getVersion

          public UDAVersion getVersion()

    - #### getType

          public DeviceType getType()

    - #### getDetails

          public DeviceDetails getDetails()

    - #### getDetails

          public DeviceDetails getDetails(RemoteClientInfo info)

    - #### getIcons

          public Icon[] getIcons()

    - #### hasIcons

          public boolean hasIcons()

    - #### hasServices

          public boolean hasServices()

    - #### hasEmbeddedDevices

          public boolean hasEmbeddedDevices()

    - #### getParentDevice

          public D getParentDevice()

    - #### isRoot

          public boolean isRoot()

    - #### getServices

          public abstract S[] getServices()

    - #### getEmbeddedDevices

          public abstract D[] getEmbeddedDevices()

    - #### getRoot

          public abstract D getRoot()

    - #### findDevice

          public abstract D findDevice(UDN udn)

    - #### findEmbeddedDevices

          public D[] findEmbeddedDevices()

    - #### findDevices

          public D[] findDevices(DeviceType deviceType)

    - #### findDevices

          public D[] findDevices(ServiceType serviceType)

    - #### findIcons

          public Icon[] findIcons()

    - #### findServices

          public S[] findServices()

    - #### findServices

          public S[] findServices(ServiceType serviceType)

    - #### find

          protected D find(UDN udn,
                           D current)

    - #### findEmbeddedDevices

          protected Collection<D> findEmbeddedDevices(D current)

    - #### find

          protected Collection<D> find(DeviceType deviceType,
                                       D current)

    - #### find

          protected Collection<D> find(ServiceType serviceType,
                                       D current)

    - #### findServices

          protected Collection<S> findServices(ServiceType serviceType,
                                               ServiceId serviceId,
                                               D current)

    - #### findService

          public S findService(ServiceId serviceId)

    - #### findService

          public S findService(ServiceType serviceType)

    - #### findServiceTypes

          public ServiceType[] findServiceTypes()

    - #### isFullyHydrated

          public boolean isFullyHydrated()

    - #### getDisplayString

          public String getDisplayString()

    - #### validate

          public List<ValidationError> validate()

      Specified by:
        `validate` in interface `Validatable`
      Returns:
        An empty `List` if all rules validated properly, otherwise, the detected errors.

    - #### equals

          public boolean equals(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`

    - #### newInstance

          public abstract D newInstance(UDN udn,
                                        UDAVersion version,
                                        DeviceType type,
                                        DeviceDetails details,
                                        Icon[] icons,
                                        S[] services,
                                        List<D> embeddedDevices)
                                 throws ValidationException

      Throws:
        `ValidationException`

    - #### newInstance

          public abstract S newInstance(ServiceType serviceType,
                                        ServiceId serviceId,
                                        URI descriptorURI,
                                        URI controlURI,
                                        URI eventSubscriptionURI,
                                        Action<S>[] actions,
                                        StateVariable<S>[] stateVariables)
                                 throws ValidationException

      Throws:
        `ValidationException`

    - #### toDeviceArray

          public abstract D[] toDeviceArray(Collection<D> col)

    - #### newServiceArray

          public abstract S[] newServiceArray(int size)

    - #### toServiceArray

          public abstract S[] toServiceArray(Collection<S> col)

    - #### discoverResources

          public abstract Resource[] discoverResources(Namespace namespace)

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

Copyright © 2015 4th Line GmbH, Switzerland. All rights reserved.