001package jmri.jmrix.lenz.messageformatters;
002
003import jmri.jmrix.Message;
004import jmri.jmrix.lenz.LenzCommandStation;
005import jmri.jmrix.lenz.XNetConstants;
006import jmri.jmrix.lenz.XNetReply;
007import jmri.jmrix.lenz.XPressNetMessageFormatter;
008
009/**
010 * Formatter for Ops Mode Read Result messages.
011 *
012 * @author Paul Bender Copyright (C) 2025
013 */
014public class XNetOpsModeReadResultFormatter implements XPressNetMessageFormatter {
015
016    @Override
017    public boolean handlesMessage(Message m) {
018        return m instanceof XNetReply &&  m.getElement(0) == XNetConstants.CS_ADVANCED_INFO_RESPONSE && m.getElement(1) == XNetConstants.POM_RESULTS;
019    }
020
021    @Override
022    public String formatMessage(Message m) {
023        if (!handlesMessage(m)) {
024            throw new IllegalArgumentException("Message is not supported");
025        }
026        return Bundle.getMessage("XNetReplyOpsModeResultResponse",
027                LenzCommandStation.calcLocoAddress(m.getElement(2), m.getElement(3)),
028                m.getElement(4) &0xFF);
029    }
030
031}