001package jmri.jmrix.lenz.messageformatters; 002 003import jmri.jmrix.Message; 004import jmri.jmrix.lenz.LenzCommandStation; 005import jmri.jmrix.lenz.XNetConstants; 006import jmri.jmrix.lenz.XNetMessage; 007import jmri.jmrix.lenz.XPressNetMessageFormatter; 008 009/** 010 * Format requests to remove a locomotive from a MulitUnit consist 011 * 012 * @author Paul Bender Copyright (C) 2024 013 */ 014public class XNetRequestMultiUnitRemoveLocoMessageFormatter implements XPressNetMessageFormatter { 015 @Override 016 public boolean handlesMessage(Message m) { 017 return m instanceof XNetMessage && 018 m.getElement(0) == XNetConstants.LOCO_OPER_REQ && 019 m.getElement(1) == XNetConstants.LOCO_REM_MULTI_UNIT_REQ; 020 } 021 022 @Override 023 public String formatMessage(Message m) { 024 if(!handlesMessage(m)) { 025 throw new IllegalArgumentException( "XNetRequestMultiUnitRemoveMessageFormatter: message type not supported"); 026 } 027 return Bundle.getMessage("XNetMessageRemoveFromConsistRequest", 028 LenzCommandStation.calcLocoAddress(m.getElement(2), m.getElement(3)), 029 m.getElement(4)); 030 } 031}