001package jmri.jmrix.lenz.messageformatters;
002
003import jmri.jmrix.Message;
004import jmri.jmrix.lenz.XNetConstants;
005import jmri.jmrix.lenz.XNetMessage;
006import jmri.jmrix.lenz.XPressNetMessageFormatter;
007
008/**
009 * Formatter for XPressNet Multi Unit Search requests
010 * @author Paul Bender Copyright (C) 2024
011 */
012
013public class XNetMultiUnitSearchRequestMessageFormatter implements XPressNetMessageFormatter {
014    @Override
015    public boolean handlesMessage(Message m) {
016        return m instanceof XNetMessage &&
017                (m.getElement(0) == XNetConstants.CS_MULTI_UNIT_REQ);
018    }
019
020    @Override
021    public String formatMessage(Message m) {
022        if(!handlesMessage(m))
023            throw new IllegalArgumentException("Invalid Multi Unit Search Request");
024        if (m.getElement(1) == XNetConstants.CS_MULTI_UNIT_REQ_FWD){
025            return Bundle.getMessage("XNetMessageSearchCSStackForwardConsistAddress",
026                    m.getElement(2));
027        } else if(m.getElement(1) == XNetConstants.CS_MULTI_UNIT_REQ_BKWD) {
028            return Bundle.getMessage("XNetMessageSearchCSStackBackwardConsistAddress", m.getElement(2));
029        }
030        throw new IllegalArgumentException("Invalid Multi Unit Search Request");
031    }
032
033}