*/
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;
*/
public class TemperatureControlManager implements EventHandler, TemperatureControlSensorTransmitter {
- private static final List<String> SUPPORTED_EVENTS = Arrays.asList(EventNames.HEATING_CONTROL_OPERATION_MODE);
+ private final Set<String> supportedEvents;
private final Logger logger = LoggerFactory.getLogger(TemperatureControlManager.class);
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);
@Override
public List<String> getSupportedEvents() {
- return SUPPORTED_EVENTS;
+ return List.copyOf(supportedEvents);
}
@Override
public boolean supportsEvent(String eventName) {
- return SUPPORTED_EVENTS.contains(eventName);
+ return supportedEvents.contains(eventName);
}
@Override
*/
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;