From 11a66e5ce858aec00af680d754b5e4aafa835082 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ga=C3=ABl=20L=27hopital?= Date: Sat, 17 Jul 2021 22:39:41 +0200 Subject: [PATCH] [meteoalerte] Small code enhancements (#10993) Signed-off-by: clinique --- .../internal/MeteoAlerteBindingConstants.java | 4 +- .../internal/handler/MeteoAlerteHandler.java | 49 ++++++------------- .../internal/json/ResponseFieldDTO.java | 18 ++----- 3 files changed, 20 insertions(+), 51 deletions(-) diff --git a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/MeteoAlerteBindingConstants.java b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/MeteoAlerteBindingConstants.java index f39ec80cc21..d9daa217a6d 100644 --- a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/MeteoAlerteBindingConstants.java +++ b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/MeteoAlerteBindingConstants.java @@ -24,10 +24,8 @@ import org.openhab.core.thing.ThingTypeUID; @NonNullByDefault public class MeteoAlerteBindingConstants { - public static final String BINDING_ID = "meteoalerte"; - // List of all Thing Type UIDs - public static final ThingTypeUID THING_TYPE_METEO_ALERT = new ThingTypeUID(BINDING_ID, "department"); + public static final ThingTypeUID THING_TYPE_METEO_ALERT = new ThingTypeUID("meteoalerte", "department"); // List of all Channel id's public static final String WAVE = "vague-submersion"; diff --git a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/handler/MeteoAlerteHandler.java b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/handler/MeteoAlerteHandler.java index c1300e0ca14..a677e6465f3 100644 --- a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/handler/MeteoAlerteHandler.java +++ b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/handler/MeteoAlerteHandler.java @@ -19,7 +19,6 @@ import java.io.InputStream; import java.net.MalformedURLException; import java.nio.charset.StandardCharsets; import java.time.ZonedDateTime; -import java.util.AbstractMap; import java.util.Map; import java.util.Objects; import java.util.concurrent.ScheduledFuture; @@ -62,15 +61,15 @@ public class MeteoAlerteHandler extends BaseThingHandler { + "facet=etat_grand_froid&facet=etat_avalanches&refine.nom_dept=%s"; private static final int TIMEOUT_MS = 30000; private static final String UNKNOWN_COLOR = "b3b3b3"; - private static final Map ALERT_COLORS = Map.ofEntries( - new AbstractMap.SimpleEntry(AlertLevel.GREEN, "00ff00"), - new AbstractMap.SimpleEntry(AlertLevel.YELLOW, "ffff00"), - new AbstractMap.SimpleEntry(AlertLevel.ORANGE, "ff6600"), - new AbstractMap.SimpleEntry(AlertLevel.RED, "ff0000"), - new AbstractMap.SimpleEntry(AlertLevel.UNKNOWN, UNKNOWN_COLOR)); + private static final Map ALERT_COLORS = Map.ofEntries(Map.entry(AlertLevel.GREEN, "00ff00"), + Map.entry(AlertLevel.YELLOW, "ffff00"), Map.entry(AlertLevel.ORANGE, "ff6600"), + Map.entry(AlertLevel.RED, "ff0000"), Map.entry(AlertLevel.UNKNOWN, UNKNOWN_COLOR)); + + private static final Map ALERT_LEVELS = Map.ofEntries( + Map.entry(AlertLevel.GREEN, DecimalType.ZERO), Map.entry(AlertLevel.YELLOW, new DecimalType(1)), + Map.entry(AlertLevel.ORANGE, new DecimalType(2)), Map.entry(AlertLevel.RED, new DecimalType(3))); private final Logger logger = LoggerFactory.getLogger(MeteoAlerteHandler.class); - // Time zone provider representing time zone configured in openHAB configuration private final Gson gson; private @Nullable ScheduledFuture refreshJob; private String queryUrl = ""; @@ -96,11 +95,11 @@ public class MeteoAlerteHandler extends BaseThingHandler { @Override public void dispose() { logger.debug("Disposing the Météo Alerte handler."); - ScheduledFuture refreshJob = this.refreshJob; - if (refreshJob != null) { - refreshJob.cancel(true); + ScheduledFuture localJob = refreshJob; + if (localJob != null) { + localJob.cancel(true); } - this.refreshJob = null; + refreshJob = null; } @Override @@ -117,8 +116,7 @@ public class MeteoAlerteHandler extends BaseThingHandler { } String response = HttpUtil.executeUrl("GET", queryUrl, TIMEOUT_MS); if (response == null) { - updateStatus(ThingStatus.OFFLINE, ThingStatusDetail.COMMUNICATION_ERROR, "empty response"); - return; + throw new IOException("Empty response"); } updateStatus(ThingStatus.ONLINE); ApiResponse apiResponse = gson.fromJson(response, ApiResponse.class); @@ -153,7 +151,7 @@ public class MeteoAlerteHandler extends BaseThingHandler { })); } - public byte @Nullable [] getResource(String iconPath) { + private byte @Nullable [] getResource(String iconPath) { ClassLoader classLoader = MeteoAlerteHandler.class.getClassLoader(); if (classLoader != null) { try (InputStream stream = classLoader.getResourceAsStream(iconPath)) { @@ -165,10 +163,10 @@ public class MeteoAlerteHandler extends BaseThingHandler { return null; } - public void updateAlert(String channelId, AlertLevel value) { + private void updateAlert(String channelId, AlertLevel value) { String channelIcon = channelId + "-icon"; if (isLinked(channelId)) { - updateState(channelId, getAlertLevel(value)); + updateState(channelId, ALERT_LEVELS.getOrDefault(value, UnDefType.UNDEF)); } if (isLinked(channelIcon)) { State result = UnDefType.UNDEF; @@ -182,24 +180,9 @@ public class MeteoAlerteHandler extends BaseThingHandler { } } - public void updateDate(String channelId, ZonedDateTime zonedDateTime) { + private void updateDate(String channelId, ZonedDateTime zonedDateTime) { if (isLinked(channelId)) { updateState(channelId, new DateTimeType(zonedDateTime)); } } - - public State getAlertLevel(AlertLevel alert) { - switch (alert) { - case GREEN: - return DecimalType.ZERO; - case YELLOW: - return new DecimalType(1); - case ORANGE: - return new DecimalType(2); - case RED: - return new DecimalType(3); - default: - return UnDefType.UNDEF; - } - } } diff --git a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/json/ResponseFieldDTO.java b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/json/ResponseFieldDTO.java index ba3eb146824..859fea5504b 100644 --- a/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/json/ResponseFieldDTO.java +++ b/bundles/org.openhab.binding.meteoalerte/src/main/java/org/openhab/binding/meteoalerte/internal/json/ResponseFieldDTO.java @@ -86,11 +86,7 @@ public class ResponseFieldDTO { } public Optional getDatePrevue() { - ZonedDateTime datePrevue = this.datePrevue; - if (datePrevue != null) { - return Optional.of(datePrevue); - } - return Optional.empty(); + return Optional.ofNullable(datePrevue); } public String getTypePrev() { @@ -126,11 +122,7 @@ public class ResponseFieldDTO { } public Optional getDateInsert() { - ZonedDateTime dateInsert = this.dateInsert; - if (dateInsert != null) { - return Optional.of(dateInsert); - } - return Optional.empty(); + return Optional.ofNullable(dateInsert); } public AlertLevel getInondation() { @@ -158,10 +150,6 @@ public class ResponseFieldDTO { } public Optional getDateRun() { - ZonedDateTime dateRun = this.dateRun; - if (dateRun != null) { - return Optional.of(dateRun); - } - return Optional.empty(); + return Optional.ofNullable(dateRun); } }