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}