]> git.basschouten.com Git - openhab-addons.git/blob
fe20b003d72ced36910cf40e66eddc91ebc65e9e
[openhab-addons.git] /
1 /**
2  * Copyright (c) 2010-2023 Contributors to the openHAB project
3  *
4  * See the NOTICE file(s) distributed with this work for additional
5  * information.
6  *
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
10  *
11  * SPDX-License-Identifier: EPL-2.0
12  */
13 package org.openhab.binding.plugwiseha.internal.api.model.dto;
14
15 import java.util.Map;
16
17 /**
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.
21  * 
22  * @author B. van Wetten - Initial contribution
23  */
24 public class Appliances extends PlugwiseHACollection<Appliance> {
25
26     @Override
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);
32
33                 Boolean originalApplianceIsOlder = false;
34                 if (originalAppliance != null) {
35                     originalApplianceIsOlder = originalAppliance.isOlderThan(applianceToMerge);
36                 }
37
38                 if (originalAppliance != null && originalApplianceIsOlder) {
39                     Logs updatedPointLogs = applianceToMerge.getPointLogs();
40                     if (updatedPointLogs != null) {
41                         updatedPointLogs.merge(originalAppliance.getPointLogs());
42                     }
43
44                     ActuatorFunctionalities updatedActuatorFunctionalities = applianceToMerge
45                             .getActuatorFunctionalities();
46                     if (updatedActuatorFunctionalities != null) {
47                         updatedActuatorFunctionalities.merge(originalAppliance.getActuatorFunctionalities());
48                     }
49
50                     this.put(id, applianceToMerge);
51                 }
52             }
53         }
54     }
55 }