001package jmri.jmrix.lenz.messageformatters;
002
003import jmri.jmrix.lenz.XNetConstants;
004import jmri.jmrix.lenz.XPressNetMessageFormatter;
005
006/**
007 * Format Command Station Request messages for display
008 *
009 * @author Paul Bender Copyright (C) 2024
010 */
011public class XNetCommandStationRequestFormatter implements XPressNetMessageFormatter {
012
013    @Override
014    public boolean handlesMessage(jmri.jmrix.Message m) {
015        return m instanceof jmri.jmrix.lenz.XNetMessage &&
016                ((jmri.jmrix.lenz.XNetMessage) m).getElement(0) == XNetConstants.CS_REQUEST;
017    }
018
019    @Override
020    public String formatMessage(jmri.jmrix.Message m) {
021        switch (m.getElement(1)) {
022            case XNetConstants.EMERGENCY_OFF:
023                return Bundle.getMessage("XNetMessageRequestEmergencyOff");
024            case XNetConstants.RESUME_OPS:
025                return Bundle.getMessage("XNetMessageRequestNormalOps");
026            case XNetConstants.SERVICE_MODE_CSRESULT:
027                return Bundle.getMessage("XNetMessageRequestServiceModeResult");
028            case XNetConstants.OPS_MODE_CSRESULT:
029                return Bundle.getMessage("XNetMessageRequestOpsModeResult");
030            case XNetConstants.CS_VERSION:
031                return Bundle.getMessage("XNetMessageRequestCSVersion");
032            case XNetConstants.CS_STATUS:
033                return Bundle.getMessage("XNetMessageRequestCSStatus");
034            default:
035                throw new IllegalArgumentException("Unknown Command Station Request: " + m.getElement(1));
036        }
037    }
038}