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}