2 * Copyright (c) 2010-2023 Contributors to the openHAB project
4 * See the NOTICE file(s) distributed with this work for additional
7 * This program and the accompanying materials are made available under the
8 * terms of the Eclipse Public License 2.0 which is available at
9 * http://www.eclipse.org/legal/epl-2.0
11 * SPDX-License-Identifier: EPL-2.0
13 package org.openhab.binding.plugwiseha.internal.api.model.dto;
18 * The {@link Appliances} class is an object model class that mirrors the XML
19 * structure provided by the Plugwise Home Automation controller for the
20 * collection of appliances. It extends the {@link PlugwiseHACollection} class.
22 * @author B. van Wetten - Initial contribution
24 public class Appliances extends PlugwiseHACollection<Appliance> {
27 public void merge(Map<String, Appliance> appliancesToMerge) {
28 if (appliancesToMerge != null) {
29 for (Appliance applianceToMerge : appliancesToMerge.values()) {
30 String id = applianceToMerge.getId();
31 Appliance originalAppliance = this.get(id);
33 Boolean originalApplianceIsOlder = false;
34 if (originalAppliance != null) {
35 originalApplianceIsOlder = originalAppliance.isOlderThan(applianceToMerge);
38 if (originalAppliance != null && originalApplianceIsOlder) {
39 Logs updatedPointLogs = applianceToMerge.getPointLogs();
40 if (updatedPointLogs != null) {
41 updatedPointLogs.merge(originalAppliance.getPointLogs());
44 ActuatorFunctionalities updatedActuatorFunctionalities = applianceToMerge
45 .getActuatorFunctionalities();
46 if (updatedActuatorFunctionalities != null) {
47 updatedActuatorFunctionalities.merge(originalAppliance.getActuatorFunctionalities());
50 this.put(id, applianceToMerge);