]> git.basschouten.com Git - openhab-addons.git/blob
6d4185ffe78d865e38229cf6fbf13f76eb6f6b64
[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.omnilink.internal.discovery;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16
17 import com.digitaldan.jomnilinkII.Message;
18 import com.digitaldan.jomnilinkII.MessageTypes.ObjectProperties;
19 import com.digitaldan.jomnilinkII.MessageTypes.properties.AccessControlReaderProperties;
20 import com.digitaldan.jomnilinkII.MessageTypes.properties.AreaProperties;
21 import com.digitaldan.jomnilinkII.MessageTypes.properties.AudioSourceProperties;
22 import com.digitaldan.jomnilinkII.MessageTypes.properties.AudioZoneProperties;
23 import com.digitaldan.jomnilinkII.MessageTypes.properties.AuxSensorProperties;
24 import com.digitaldan.jomnilinkII.MessageTypes.properties.ButtonProperties;
25 import com.digitaldan.jomnilinkII.MessageTypes.properties.ThermostatProperties;
26 import com.digitaldan.jomnilinkII.MessageTypes.properties.UnitProperties;
27 import com.digitaldan.jomnilinkII.MessageTypes.properties.ZoneProperties;
28
29 /**
30  * @author Craig Hamilton - Initial contribution
31  *
32  * @param <T>
33  */
34 @NonNullByDefault
35 public class ObjectPropertyRequests<T extends ObjectProperties> {
36
37     public static final ObjectPropertyRequests<ThermostatProperties> THERMOSTAT = new ObjectPropertyRequests<>(
38             Message.OBJ_TYPE_THERMO, ThermostatProperties.class);
39
40     public static final ObjectPropertyRequests<ButtonProperties> BUTTONS = new ObjectPropertyRequests<>(
41             Message.OBJ_TYPE_BUTTON, ButtonProperties.class);
42
43     public static final ObjectPropertyRequests<AreaProperties> AREA = new ObjectPropertyRequests<>(
44             Message.OBJ_TYPE_AREA, AreaProperties.class);
45
46     public static final ObjectPropertyRequests<ZoneProperties> ZONE = new ObjectPropertyRequests<>(
47             Message.OBJ_TYPE_ZONE, ZoneProperties.class);
48
49     public static final ObjectPropertyRequests<UnitProperties> UNIT = new ObjectPropertyRequests<>(
50             Message.OBJ_TYPE_UNIT, UnitProperties.class);
51
52     public static final ObjectPropertyRequests<AudioZoneProperties> AUDIO_ZONE = new ObjectPropertyRequests<>(
53             Message.OBJ_TYPE_AUDIO_ZONE, AudioZoneProperties.class);
54
55     public static final ObjectPropertyRequests<AudioSourceProperties> AUDIO_SOURCE = new ObjectPropertyRequests<>(
56             Message.OBJ_TYPE_AUDIO_SOURCE, AudioSourceProperties.class);
57
58     public static final ObjectPropertyRequests<AuxSensorProperties> AUX_SENSORS = new ObjectPropertyRequests<>(
59             Message.OBJ_TYPE_AUX_SENSOR, AuxSensorProperties.class);
60
61     public static final ObjectPropertyRequests<AccessControlReaderProperties> LOCK = new ObjectPropertyRequests<>(
62             Message.OBJ_TYPE_CONTROL_READER, AccessControlReaderProperties.class);
63
64     private final int propertyRequest;
65     private final Class<T> responseType;
66
67     private ObjectPropertyRequests(int propertyRequest, Class<T> type) {
68         this.propertyRequest = propertyRequest;
69         this.responseType = type;
70     }
71
72     public int getPropertyRequest() {
73         return propertyRequest;
74     }
75
76     public Class<T> getResponseType() {
77         return responseType;
78     }
79 }