diff --git a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java index 5ead15d8ee4..cb9b98a9421 100644 --- a/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java +++ b/bundles/org.openhab.binding.digitalstrom/src/main/java/org/openhab/binding/digitalstrom/internal/lib/manager/impl/TemperatureControlManager.java @@ -12,12 +12,13 @@ */ package org.openhab.binding.digitalstrom.internal.lib.manager.impl; -import java.util.Arrays; import java.util.Collection; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Set; import org.openhab.binding.digitalstrom.internal.lib.climate.TemperatureControlSensorTransmitter; import org.openhab.binding.digitalstrom.internal.lib.climate.jsonresponsecontainer.impl.TemperatureControlStatus; @@ -60,7 +61,7 @@ import org.slf4j.LoggerFactory; */ public class TemperatureControlManager implements EventHandler, TemperatureControlSensorTransmitter { - private static final List SUPPORTED_EVENTS = Arrays.asList(EventNames.HEATING_CONTROL_OPERATION_MODE); + private final Set supportedEvents; private final Logger logger = LoggerFactory.getLogger(TemperatureControlManager.class); @@ -149,12 +150,14 @@ public class TemperatureControlManager implements EventHandler, TemperatureContr this.systemStateChangeListener = systemStateChangeListener; this.discovery = discovery; this.eventListener = eventListener; + this.supportedEvents = new HashSet<>(); + this.supportedEvents.add(EventNames.HEATING_CONTROL_OPERATION_MODE); checkZones(); if (eventListener != null) { if (isConfigured) { - SUPPORTED_EVENTS.add(EventNames.ZONE_SENSOR_VALUE); + supportedEvents.add(EventNames.ZONE_SENSOR_VALUE); if (systemStateChangeListener != null) { - SUPPORTED_EVENTS.add(EventNames.STATE_CHANGED); + supportedEvents.add(EventNames.STATE_CHANGED); } } eventListener.addEventHandler(this); @@ -367,12 +370,12 @@ public class TemperatureControlManager implements EventHandler, TemperatureContr @Override public List getSupportedEvents() { - return SUPPORTED_EVENTS; + return List.copyOf(supportedEvents); } @Override public boolean supportsEvent(String eventName) { - return SUPPORTED_EVENTS.contains(eventName); + return supportedEvents.contains(eventName); } @Override @@ -442,7 +445,7 @@ public class TemperatureControlManager implements EventHandler, TemperatureContr */ public void registerSystemStateChangeListener(SystemStateChangeListener systemStateChangeListener) { if (eventListener != null) { - SUPPORTED_EVENTS.add(EventNames.STATE_CHANGED); + supportedEvents.add(EventNames.STATE_CHANGED); eventListener.addSubscribe(EventNames.STATE_CHANGED); } this.systemStateChangeListener = systemStateChangeListener;