From 473b0acda1d320589e962187dde5b3696dd09872 Mon Sep 17 00:00:00 2001 From: Alexander Falkenstern Date: Sun, 11 Feb 2024 22:59:29 +0100 Subject: [PATCH] Remove duplicated code. (#16393) Signed-off-by: Alexander Falkenstern --- .../internal/handler/ShellyBaseHandler.java | 21 ++++--------------- .../shelly/internal/util/ShellyUtils.java | 11 ++++++---- 2 files changed, 11 insertions(+), 21 deletions(-) diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java index 08e73cb7824..e300f5d95cf 100755 --- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java +++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/handler/ShellyBaseHandler.java @@ -415,7 +415,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler case CHANNEL_SENSOR_SLEEPTIME: logger.debug("{}: Set sensor sleep time to {}", thingName, command); - int value = (int) getNumber(command); + int value = getNumber(command).intValue(); value = value > 0 ? Math.max(SHELLY_MOTION_SLEEPTIME_OFFSET, value - SHELLY_MOTION_SLEEPTIME_OFFSET) : 0; api.setSleepTime(value); @@ -432,7 +432,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler logger.debug("{}: Select profile {}", thingName, command); int id = -1; if (command instanceof Number) { - id = (int) getNumber(command); + id = getNumber(command).intValue(); } else { String cmd = command.toString(); if (isDigit(cmd.charAt(0))) { @@ -458,7 +458,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler break; case CHANNEL_CONTROL_SETTEMP: logger.debug("{}: Set temperature to {}", thingName, command); - api.setValveTemperature(0, (int) getNumber(command)); + api.setValveTemperature(0, getNumber(command).intValue()); break; case CHANNEL_CONTROL_POSITION: logger.debug("{}: Set position to {}", thingName, command); @@ -470,7 +470,7 @@ public abstract class ShellyBaseHandler extends BaseThingHandler break; case CHANNEL_CONTROL_BTIMER: logger.debug("{}: Set boost timer to {}", thingName, command); - api.setValveBoostTime(0, (int) getNumber(command)); + api.setValveBoostTime(0, getNumber(command).intValue()); break; case CHANNEL_SENSOR_MUTE: if (profile.isSmoke && ((OnOffType) command) == OnOffType.ON) { @@ -514,19 +514,6 @@ public abstract class ShellyBaseHandler extends BaseThingHandler } } - private double getNumber(Command command) { - if (command instanceof QuantityType quantityCommand) { - return quantityCommand.doubleValue(); - } - if (command instanceof DecimalType decimalCommand) { - return decimalCommand.doubleValue(); - } - if (command instanceof Number numberCommand) { - return numberCommand.doubleValue(); - } - throw new IllegalArgumentException("Invalid Number type for conversion: " + command); - } - /** * Update device status and channels */ diff --git a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java index 5a4a8267667..db494f2c177 100644 --- a/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java +++ b/bundles/org.openhab.binding.shelly/src/main/java/org/openhab/binding/shelly/internal/util/ShellyUtils.java @@ -236,13 +236,16 @@ public class ShellyUtils { } public static Double getNumber(Command command) throws IllegalArgumentException { - if (command instanceof DecimalType decimalCommand) { - return decimalCommand.doubleValue(); - } if (command instanceof QuantityType quantityCommand) { return quantityCommand.doubleValue(); } - throw new IllegalArgumentException("Unable to convert number"); + if (command instanceof DecimalType decimalCommand) { + return decimalCommand.doubleValue(); + } + if (command instanceof Number numberCommand) { + return numberCommand.doubleValue(); + } + throw new IllegalArgumentException("Invalid Number type for conversion: " + command); } public static OnOffType getOnOff(@Nullable Boolean value) {