2 * Copyright (c) 2010-2022 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.helios.internal.ws.soap;
15 import javax.xml.bind.annotation.XmlAccessType;
16 import javax.xml.bind.annotation.XmlAccessorType;
17 import javax.xml.bind.annotation.XmlElement;
18 import javax.xml.bind.annotation.XmlRootElement;
19 import javax.xml.bind.annotation.XmlType;
21 import org.openhab.binding.helios.internal.handler.HeliosHandler27;
24 * Helios SOAP Protocol Message
26 * @author Karel Goderis - Initial contribution
28 @XmlAccessorType(XmlAccessType.FIELD)
29 @XmlType(name = "HeliosEvent", namespace = HeliosHandler27.HELIOS_URI, propOrder = { "timestamp", "eventName", "data" })
30 @XmlRootElement(name = "Msg")
31 public class SOAPEvent {
33 @XmlElement(name = "Timestamp", namespace = HeliosHandler27.HELIOS_URI)
34 protected String timestamp;
36 @XmlElement(name = "EventName", namespace = HeliosHandler27.HELIOS_URI)
37 protected String eventName;
39 @XmlElement(name = "Data", namespace = HeliosHandler27.HELIOS_URI)
40 protected SOAPDataField data;
42 public SOAPDataField getData() {
46 public void setData(SOAPDataField data) {
50 public String getTimestamp() {
54 public void setTimestamp(String timestamp) {
55 this.timestamp = timestamp;
58 public String getEventName() {
62 public void setEventName(String eventName) {
63 this.eventName = eventName;
67 public boolean equals(Object obj) {
68 if (!(obj instanceof SOAPEvent)) {
75 SOAPEvent event = (SOAPEvent) obj;
77 if (event.getEventName().equals(eventName) && event.getTimestamp().equals(timestamp)) {
78 Object eventData = event.getData();
80 if (data instanceof SOAPKeyPressed) {
81 return ((SOAPKeyPressed) data).getKeyCode().equals(((SOAPKeyPressed) eventData).getKeyCode());
84 if (data instanceof SOAPCallStateChanged) {
85 return ((SOAPCallStateChanged) data).getDirection()
86 .equals(((SOAPCallStateChanged) eventData).getDirection())
87 && ((SOAPCallStateChanged) data).getState()
88 .equals(((SOAPCallStateChanged) eventData).getState());
91 if (data instanceof SOAPCardEntered) {
92 return ((SOAPCardEntered) data).getCard().equals(((SOAPCardEntered) eventData).getCard())
93 && ((SOAPCardEntered) data).getValid().equals(((SOAPCardEntered) eventData).getValid());
96 if (data instanceof SOAPCodeEntered) {
97 return ((SOAPCodeEntered) data).getCode().equals(((SOAPCodeEntered) eventData).getCode())
98 && ((SOAPCodeEntered) data).getValid().equals(((SOAPCodeEntered) eventData).getValid());
101 if (data instanceof SOAPDeviceState) {
102 return ((SOAPDeviceState) data).getState().equals(((SOAPDeviceState) eventData).getState());