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.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 <a href="https://developers.deutschebahn.com/db-api-marketplace/apis/product/timetables">DB API Marketplace</a>
27 * @author Sönke Küper - initial contribution
30 public final class MessageCodes {
32 private static final 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) {