]> git.basschouten.com Git - openhab-addons.git/blob
d1c648b4a6703ddff95fd521f24d398dd2b34c2a
[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.nobohub.internal.model;
14
15 import org.eclipse.jdt.annotation.NonNullByDefault;
16
17 /**
18  * The mode of the {@link OverridePlan}. What the value is overridden to.
19  *
20  * @author Jørgen Austvik - Initial contribution
21  * @author Espen Fossen - Initial contribution
22  */
23 @NonNullByDefault
24 public enum OverrideMode {
25
26     NORMAL(0),
27     COMFORT(1),
28     ECO(2),
29     AWAY(3);
30
31     private final int numValue;
32
33     OverrideMode(int numValue) {
34         this.numValue = numValue;
35     }
36
37     public static OverrideMode getByNumber(int value) throws NoboDataException {
38         switch (value) {
39             case 0:
40                 return NORMAL;
41             case 1:
42                 return COMFORT;
43             case 2:
44                 return ECO;
45             case 3:
46                 return AWAY;
47             default:
48                 throw new NoboDataException(String.format("Unknown override mode %d", value));
49         }
50     }
51
52     public int getNumValue() {
53         return numValue;
54     }
55
56     public static OverrideMode getByName(String name) throws NoboDataException {
57         if (name.isEmpty()) {
58             throw new NoboDataException("Missing name");
59         }
60
61         if ("Normal".equalsIgnoreCase(name)) {
62             return NORMAL;
63         } else if ("Comfort".equalsIgnoreCase(name)) {
64             return COMFORT;
65         } else if ("Eco".equalsIgnoreCase(name)) {
66             return ECO;
67         } else if ("Away".equalsIgnoreCase(name)) {
68             return AWAY;
69         }
70
71         throw new NoboDataException(String.format("Unknown name of override mode: '%s'", name));
72     }
73 }