001package jmri.jmrix.roco.z21.messageformatters;
002
003import jmri.jmrix.Message;
004import jmri.jmrix.roco.z21.RocoZ21CommandStation;
005import jmri.jmrix.roco.z21.Z21MessageFormatter;
006import jmri.jmrix.roco.z21.Z21MessageUtils;
007import jmri.jmrix.roco.z21.Z21Reply;
008
009/**
010 * Formatter for Z21 Broadcast Flags Reply
011 *
012 * @author Paul Bender Copyright (C) 2025
013 */
014public class Z21BroadcastFlagsReplyFormatter implements Z21MessageFormatter {
015
016    @Override
017    public boolean handlesMessage(Message m) {
018        return m instanceof Z21Reply && ((Z21Reply) m).getOpCode() == 0x0051;
019    }
020
021    @Override
022    public String formatMessage(Message m) {
023        if(!handlesMessage(m)) {
024            throw new IllegalArgumentException("Z21BroadcastFlagsReplyFormatter cannot format message");
025        }
026        return Bundle.getMessage("Z21ReplyBroadcastFlags", RocoZ21CommandStation.getZ21BroadcastFlagsString(Z21MessageUtils.interpretBroadcastFlags(m)));
027    }
028
029}