001package jmri.jmrix.roco.z21.messageformatters;
002
003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
004import jmri.jmrix.Message;
005import jmri.jmrix.roco.z21.Z21Message;
006import jmri.jmrix.roco.z21.Z21MessageFormatter;
007
008/**
009 * Z21 LocoNet Tunnel Request Formatter
010 *
011 * @author Paul Bender Copyright (C) 2025
012 */
013public class Z21LocoNetTunnelRequestFormatter implements Z21MessageFormatter {
014
015    @Override
016    public boolean handlesMessage(Message m) {
017        return m instanceof Z21Message && ((Z21Message) m).getOpCode() == 0x00A2;
018    }
019
020    @SuppressFBWarnings(value = "BC_UNCONFIRMED_CAST", justification = "cast is checked in handlesMessage")
021    @Override
022    public String formatMessage(Message m) {
023        if(!handlesMessage(m)){
024            throw new IllegalArgumentException("Message is not a Z21 LocoNet Tunnel Request Message");
025        }
026        return Bundle.getMessage("Z21LocoNetLanMessage", ((Z21Message) m).getLocoNetMessage().toMonitorString());
027    }
028
029}