001package jmri.jmrix.lenz.messageformatters;
002
003import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
004import jmri.jmrix.Message;
005import jmri.jmrix.lenz.XNetConstants;
006import jmri.jmrix.lenz.XNetReply;
007import jmri.jmrix.lenz.XPressNetMessageFormatter;
008/**
009 * Format XPressNet reply for LI version.
010 *
011 * @author Paul Bender Copyright (C) 2025
012 */
013public class XNetLIVersionReplyFormatter implements XPressNetMessageFormatter {
014
015    @Override
016    public boolean handlesMessage(Message m) {
017        return m instanceof XNetReply && m.getElement(0) == XNetConstants.LI_VERSION_RESPONSE;
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 supported");
025        }
026        XNetReply r = (XNetReply) m;
027        return Bundle.getMessage("XNetReplyLIVersion", (r.getElementBCD(1).floatValue()) / 10, (r.getElementBCD(2).floatValue()) / 10);
028
029    }
030
031}