From b5d4a5000b1c28ca7674de5f313c876c0f29a763 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 9 Oct 2021 17:04:01 +0200 Subject: [PATCH] Add DeviceNotFound Error --- src/main/java/org/asamk/Signal.java | 7 +++++++ src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/asamk/Signal.java b/src/main/java/org/asamk/Signal.java index 2f81c196..bf8265ff 100644 --- a/src/main/java/org/asamk/Signal.java +++ b/src/main/java/org/asamk/Signal.java @@ -326,6 +326,13 @@ public interface Signal extends DBusInterface { } } + class DeviceNotFound extends DBusExecutionException { + + public DeviceNotFound(final String message) { + super(message); + } + } + class GroupNotFound extends DBusExecutionException { public GroupNotFound(final String message) { diff --git a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java index d0e33a40..ab19f0ce 100644 --- a/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java +++ b/src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java @@ -111,7 +111,11 @@ public class DbusSignalImpl implements Signal { @Override public DBusPath getDevice(long deviceId) { updateDevices(); - return new DBusPath(getDeviceObjectPath(objectPath, deviceId)); + final var deviceOptional = devices.stream().filter(g -> g.getId().equals(deviceId)).findFirst(); + if (deviceOptional.isEmpty()) { + throw new Error.DeviceNotFound("Device not found"); + } + return deviceOptional.get().getObjectPath(); } @Override -- 2.50.1