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.deutschebahn.internal;
15 import java.util.HashMap;
18 import org.eclipse.jdt.annotation.NonNullByDefault;
21 * Class containing the mappings for all message status codes.
23 * chapter "2 List of all codes" in Technical Interface Description for external Developers
25 * @see https://developer.deutschebahn.com/store/apis/info?name=Timetables&version=v1&provider=DBOpenData&#tab1
27 * @author Sönke Küper - initial contribution
30 public final class MessageCodes {
32 private static Map<Integer, String> codes = new HashMap<>();
34 codes.put(0, "keine Verspätungsbegründung");
35 codes.put(2, "Polizeiliche Ermittlung");
36 codes.put(3, "Feuerwehreinsatz an der Strecke");
37 codes.put(4, "kurzfristiger Personalausfall");
38 codes.put(5, "ärztliche Versorgung eines Fahrgastes");
39 codes.put(6, "Betätigen der Notbremse");
40 codes.put(7, "Personen im Gleis");
41 codes.put(8, "Notarzteinsatz am Gleis");
42 codes.put(9, "Streikauswirkungen");
43 codes.put(10, "Tiere im Gleis");
44 codes.put(11, "Unwetter");
45 codes.put(12, "Warten auf ein verspätetes Schiff");
46 codes.put(13, "Pass- und Zollkontrolle");
47 codes.put(14, "Technische Störung am Bahnhof");
48 codes.put(15, "Beeinträchtigung durch Vandalismus");
49 codes.put(16, "Entschärfung einer Fliegerbombe");
50 codes.put(17, "Beschädigung einer Brücke");
51 codes.put(18, "umgestürzter Baum im Gleis");
52 codes.put(19, "Unfall an einem Bahnübergang");
53 codes.put(20, "Tiere im Gleis");
54 codes.put(21, "Warten auf Fahrgäste aus einem anderen Zug");
55 codes.put(22, "Witterungsbedingte Störung");
56 codes.put(23, "Feuerwehreinsatz auf Bahngelände");
57 codes.put(24, "Verspätung im Ausland");
58 codes.put(25, "Warten auf weitere Wagen");
59 codes.put(28, "Gegenstände im Gleis");
60 codes.put(29, "Ersatzverkehr mit Bus ist eingerichtet");
61 codes.put(31, "Bauarbeiten");
62 codes.put(32, "Verzögerung beim Ein-/Ausstieg");
63 codes.put(33, "Oberleitungsstörung");
64 codes.put(34, "Signalstörung");
65 codes.put(35, "Streckensperrung");
66 codes.put(36, "technische Störung am Zug");
67 codes.put(38, "technische Störung an der Strecke");
68 codes.put(39, "Anhängen von zusätzlichen Wagen");
69 codes.put(40, "Stellwerksstörung /-ausfall");
70 codes.put(41, "Störung an einem Bahnübergang");
71 codes.put(42, "außerplanmäßige Geschwindigkeitsbeschränkung");
72 codes.put(43, "Verspätung eines vorausfahrenden Zuges");
73 codes.put(44, "Warten auf einen entgegenkommenden Zug");
74 codes.put(45, "Überholung");
75 codes.put(46, "Warten auf freie Einfahrt");
76 codes.put(47, "verspätete Bereitstellung des Zuges");
77 codes.put(48, "Verspätung aus vorheriger Fahrt");
78 codes.put(55, "technische Störung an einem anderen Zug");
79 codes.put(56, "Warten auf Fahrgäste aus einem Bus");
80 codes.put(57, "Zusätzlicher Halt zum Ein-/Ausstieg für Reisende");
81 codes.put(58, "Umleitung des Zuges");
82 codes.put(59, "Schnee und Eis");
83 codes.put(60, "Reduzierte Geschwindigkeit wegen Sturm");
84 codes.put(61, "Türstörung");
85 codes.put(62, "behobene technische Störung am Zug");
86 codes.put(63, "technische Untersuchung am Zug");
87 codes.put(64, "Weichenstörung");
88 codes.put(65, "Erdrutsch");
89 codes.put(66, "Hochwasser");
90 codes.put(70, "WLAN im gesamten Zug nicht verfügbar");
91 codes.put(71, "WLAN in einem/mehreren Wagen nicht verfügbar");
92 codes.put(72, "Info-/Entertainment nicht verfügbar");
93 codes.put(73, "Heute: Mehrzweckabteil vorne");
94 codes.put(74, "Heute: Mehrzweckabteil hinten");
95 codes.put(75, "Heute: 1. Klasse vorne");
96 codes.put(76, "Heute: 1. Klasse hinten");
97 codes.put(77, "ohne 1. Klasse");
98 codes.put(79, "ohne Mehrzweckabteil");
99 codes.put(80, "andere Reihenfolge der Wagen");
100 codes.put(82, "mehrere Wagen fehlen");
101 codes.put(83, "Störung fahrzeuggebundene Einstiegshilfe");
102 codes.put(84, "Zug verkehrt richtig gereiht");
103 codes.put(85, "ein Wagen fehlt");
104 codes.put(86, "gesamter Zug ohne Reservierung");
105 codes.put(87, "einzelne Wagen ohne Reservierung");
106 codes.put(88, "keine Qualitätsmängel");
107 codes.put(89, "Reservierungen sind wieder vorhanden");
108 codes.put(90, "kein gastronomisches Angebot");
109 codes.put(91, "fehlende Fahrradbeförderung");
110 codes.put(92, "Eingeschränkte Fahrradbeförderung");
111 codes.put(93, "keine behindertengerechte Einrichtung");
112 codes.put(94, "Ersatzbewirtschaftung");
113 codes.put(95, "Ohne behindertengerechtes WC");
114 codes.put(96, "Überbesetzung mit Kulanzleistungen");
115 codes.put(97, "Überbesetzung ohne Kulanzleistungen");
116 codes.put(98, "sonstige Qualitätsmängel");
117 codes.put(99, "Verzögerungen im Betriebsablauf");
120 private MessageCodes() {
124 * Returns the message for the given code or emtpy string if not present.
126 public static String getMessage(final int code) {
127 final String message = codes.get(code);
128 if (message == null) {