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.mybmw.internal.utils;
15 import java.time.DayOfWeek;
16 import java.time.LocalDate;
17 import java.time.LocalTime;
18 import java.time.format.DateTimeFormatter;
19 import java.util.HashMap;
22 import javax.measure.Unit;
23 import javax.measure.quantity.Length;
25 import org.eclipse.jdt.annotation.NonNullByDefault;
26 import org.openhab.core.library.unit.MetricPrefix;
27 import org.openhab.core.library.unit.SIUnits;
28 import org.openhab.core.types.UnDefType;
31 * The {@link Constants} General Constant Definitions
33 * @author Bernd Weymann - Initial contribution
34 * @author Norbert Truchsess - contributor
37 public class Constants {
39 public static final String NO_ENTRIES = "-";
40 public static final String OPEN = "Open";
41 public static final String CLOSED = "Closed";
42 public static final String LOCKED = "Locked";
43 public static final String UNLOCKED = "Unlocked";
44 public static final String CONNECTED = "Connected";
45 public static final String UNCONNECTED = "Not connected";
46 public static final String UNDEF = UnDefType.UNDEF.toFullString();
47 public static final String NULL_TIME = "00:00";
48 public static final String KILOMETERS_JSON = "KILOMETERS";
49 public static final String KM_JSON = "km";
50 public static final String MI_JSON = "mi";
51 public static final String UNIT_PRECENT_JSON = "%";
52 public static final String UNIT_LITER_JSON = "l";
53 public static final Unit<Length> KILOMETRE_UNIT = MetricPrefix.KILO(SIUnits.METRE);
54 public static final int INT_UNDEF = -1;
56 // Services in Discovery
57 public static final String ENABLED = "ENABLED";
59 // General Constants for String concatenation
60 public static final String NULL = "null";
61 public static final String SPACE = " ";
62 public static final String UNDERLINE = "_";
63 public static final String HYPHEN = " - ";
64 public static final String PLUS = "+";
65 public static final String EMPTY = "";
66 public static final String COMMA = ",";
67 public static final String QUESTION = "?";
68 public static final String COLON = ":";
69 public static final String SEMICOLON = ";";
70 public static final String TILDE = "~";
72 public static final String ANONYMOUS = "anonymous";
73 public static final String EMPTY_JSON = "{}";
74 public static final String LANGUAGE_AUTODETECT = "AUTODETECT";
76 // Time Constants for DateTime channels
77 public static final LocalDate EPOCH_DAY = LocalDate.ofEpochDay(0);
78 public static final DateTimeFormatter TIME_FORMATER = DateTimeFormatter.ofPattern("HH:mm");
79 public static final LocalTime NULL_LOCAL_TIME = LocalTime.parse(NULL_TIME, TIME_FORMATER);
81 @SuppressWarnings("serial")
82 public static final Map<DayOfWeek, String> DAYS = new HashMap<>() {
84 put(DayOfWeek.MONDAY, "Mon");
85 put(DayOfWeek.TUESDAY, "Tue");
86 put(DayOfWeek.WEDNESDAY, "Wed");
87 put(DayOfWeek.THURSDAY, "Thu");
88 put(DayOfWeek.FRIDAY, "Fri");
89 put(DayOfWeek.SATURDAY, "Sat");
90 put(DayOfWeek.SUNDAY, "Sun");
94 // Drive Train definitions from json
95 public static final String BEV = "ELECTRIC";
96 public static final String REX_EXTENSION = "(+ REX)";
97 public static final String HYBRID = "HYBRID";
98 public static final String CONV = "COMBUSTION";
99 public static final String PHEV = "PLUGIN_HYBRID";
102 public static final String DEFAULT = "DEFAULT";
103 public static final String NOT_CHARGING_STATE = "NOT_CHARGING";
104 public static final String CHARGING_STATE = "CHARGING";
105 public static final String PLUGGED_STATE = "PLUGGED_IN";