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.bmwconnecteddrive.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 OK = "Ok";
40 public static final String ACTIVE = "Active";
41 public static final String NOT_ACTIVE = "Not Active";
42 public static final String NO_ENTRIES = "No Entries";
43 public static final String OPEN = "Open";
44 public static final String INVALID = "Invalid";
45 public static final String CLOSED = "Closed";
46 public static final String INTERMEDIATE = "Intermediate";
47 public static final String UNDEF = UnDefType.UNDEF.toFullString();
48 public static final String UTC_APPENDIX = "-01T12:00:00";
49 public static final String NULL_DATE = "1900-01-01T00:00:00";
50 public static final String NULL_TIME = "00:00";
51 public static final int INT_UNDEF = -1;
52 public static final Unit<Length> KILOMETRE_UNIT = MetricPrefix.KILO(SIUnits.METRE);
55 public static final String SERVICES_SUPPORTED = "servicesSupported";
56 public static final String STATISTICS = "Statistics";
57 public static final String LAST_DESTINATIONS = "LastDestinations";
59 // Services in Discovery
60 public static final String ACTIVATED = "ACTIVATED";
61 public static final String SUPPORTED = "SUPPORTED";
62 public static final String NOT_SUPPORTED = "NOT_SUPPORTED";
64 // General Constants for String concatenation
65 public static final String NULL = "null";
66 public static final String SPACE = " ";
67 public static final String UNDERLINE = "_";
68 public static final String HYPHEN = " - ";
69 public static final String PLUS = "+";
70 public static final String EMPTY = "";
71 public static final String COMMA = ",";
72 public static final String QUESTION = "?";
73 public static final String COLON = ":";
75 public static final String ANONYMOUS = "Anonymous";
76 public static final int MILES_TO_FEET_FACTOR = 5280;
77 public static final String EMPTY_JSON = "{}";
79 // Time Constants for DateTime channels
80 public static final LocalDate EPOCH_DAY = LocalDate.ofEpochDay(0);
81 public static final DateTimeFormatter TIME_FORMATER = DateTimeFormatter.ofPattern("HH:mm");
82 public static final LocalTime NULL_LOCAL_TIME = LocalTime.parse(NULL_TIME, TIME_FORMATER);
84 @SuppressWarnings("serial")
85 public static final Map<DayOfWeek, String> DAYS = new HashMap<>() {
87 put(DayOfWeek.MONDAY, "Mon");
88 put(DayOfWeek.TUESDAY, "Tue");
89 put(DayOfWeek.WEDNESDAY, "Wed");
90 put(DayOfWeek.THURSDAY, "Thu");
91 put(DayOfWeek.FRIDAY, "Fri");
92 put(DayOfWeek.SATURDAY, "Sat");
93 put(DayOfWeek.SUNDAY, "Sun");