public DeviceItem(Device device) { this.udn = device.getIdentity().getUdn(); this.device = device; }
public DeviceItem(Device device, String... label) { this.udn = device.getIdentity().getUdn(); this.device = device; this.label = label; }
protected String getDevicePath(Device device) { if (device.getIdentity().getUdn() == null) { throw new IllegalStateException("Can't generate local URI prefix without UDN"); } StringBuilder s = new StringBuilder(); s.append(DEVICE).append("/"); s.append(URIUtil.encodePathSegment(device.getIdentity().getUdn().getIdentifierString())); return s.toString(); }
@Override public String toString() { return "(" + getClass().getSimpleName() + ") Identity: " + getIdentity().toString() + ", Root: " + isRoot(); } }
protected D find(UDN udn, D current) { if (current.getIdentity() != null && current.getIdentity().getUdn() != null) { if (current.getIdentity().getUdn().equals(udn)) return current; } if (current.hasEmbeddedDevices()) { for (D embeddedDevice : (D[]) current.getEmbeddedDevices()) { D match; if ((match = find(udn, embeddedDevice)) != null) return match; } } return null; }
boolean contains(D device) { return contains(device.getIdentity().getUdn()); }
protected Collection<D> findEmbeddedDevices(D current) { Collection<D> devices = new HashSet<>(); if (!current.isRoot() && current.getIdentity().getUdn() != null) devices.add(current); if (current.hasEmbeddedDevices()) { for (D embeddedDevice : (D[]) current.getEmbeddedDevices()) { devices.addAll(findEmbeddedDevices(embeddedDevice)); } } return devices; }
public ServiceReference getReference() { return new ServiceReference(getDevice().getIdentity().getUdn(), getServiceId()); }
public List<ValidationError> validate() { List<ValidationError> errors = new ArrayList<>(); if (getType() != null) { // Only validate the graph if we have a device type - that means we validate only if there // actually is a fully hydrated graph, not just a discovered device of which we haven't even // retrieved the descriptor yet. This assumes that the descriptor will ALWAYS contain a device // type. Now that is a risky assumption... errors.addAll(getVersion().validate()); if(getIdentity() != null) { errors.addAll(getIdentity().validate()); } if (getDetails() != null) { errors.addAll(getDetails().validate()); } if (hasServices()) { for (Service service : getServices()) { if (service != null) errors.addAll(service.validate()); } } if (hasEmbeddedDevices()) { for (Device embeddedDevice : getEmbeddedDevices()) { if (embeddedDevice != null) errors.addAll(embeddedDevice.validate()); } } } return errors; }
/** * Returns root and embedded devices registered under the given UDN. * * @param udn A unique device name. * @param rootOnly Set to true if only root devices (no embedded) should be searched * @return Any registered root or embedded device under the given UDN, <tt>null</tt> if * no device with the given UDN has been registered. */ D get(UDN udn, boolean rootOnly) { for (RegistryItem<UDN, D> item : deviceItems) { D device = item.getItem(); if (device.getIdentity().getUdn().equals(udn)) { return device; } if (!rootOnly) { D foundDevice = (D)item.getItem().findDevice(udn); if (foundDevice != null) return foundDevice; } } return null; }
private void establishLocalSubscription(LocalService service) { if (getControlPoint().getRegistry().getLocalDevice(service.getDevice().getIdentity().getUdn(), false) == null) { log.fine("Local device service is currently not registered, failing subscription immediately"); failed(null, null, new IllegalStateException("Local device is not registered"));
incomingSubscription.getItem().getService().getDevice().getIdentity().getUdn();
@Override public String toString() { return "(" + getClass().getSimpleName() + ") Identity: " + getIdentity().toString() + ", Root: " + isRoot(); } }
boolean contains(D device) { return contains(device.getIdentity().getUdn()); }
currentNode.add(deviceNode); addIfNotNull(deviceNode, "UDN: ", device.getIdentity().getUdn()); addIfNotNull(deviceNode, "Device Type: ", device.getType().toString()); if (device.getDetails().getDlnaDocs() != null) {
public URI getPath(Device device) { if (device.getIdentity().getUdn() == null) { throw new IllegalStateException("Can't generate local URI prefix without UDN"); s.append(DEVICE).append("/"); s.append(URIUtil.encodePathSegment(device.getIdentity().getUdn().getIdentifierString()));
public ServiceReference getReference() { return new ServiceReference(getDevice().getIdentity().getUdn(), getServiceId()); }
protected D find(UDN udn, D current) { if (current.getIdentity().getUdn().equals(udn)) return current; if (current.hasEmbeddedDevices()) { for (D embeddedDevice : (D[]) current.getEmbeddedDevices()) { D match; if ((match = find(udn, embeddedDevice)) != null) return match; } } return null; }
/** * Returns root and embedded devices registered under the given UDN. * * @param udn A unique device name. * @param rootOnly Set to true if only root devices (no embedded) should be searched * @return Any registered root or embedded device under the given UDN, <tt>null</tt> if * no device with the given UDN has been registered. */ D get(UDN udn, boolean rootOnly) { for (RegistryItem<UDN, D> item : deviceItems) { D device = item.getItem(); if (device.getIdentity().getUdn().equals(udn)) { return device; } if (!rootOnly) { D foundDevice = (D)item.getItem().findDevice(udn); if (foundDevice != null) return foundDevice; } } return null; }
deviceModelDetails.getSerialNumber() ); appendNewElementIfNotNull(descriptor, deviceElement, ELEMENT.UDN, deviceModel.getIdentity().getUdn()); appendNewElementIfNotNull( descriptor, deviceElement, ELEMENT.presentationURL,