001package jmri.jmrix.lenz.messageformatters;
002
003import jmri.jmrix.lenz.XNetConstants;
004import jmri.jmrix.lenz.XPressNetMessageFormatter;
005
006public class XNetCSPowerOnStatusRequestMessageFormatter implements XPressNetMessageFormatter {
007    @Override
008    public boolean handlesMessage(jmri.jmrix.Message m) {
009        return m instanceof jmri.jmrix.lenz.XNetMessage &&
010                ((jmri.jmrix.lenz.XNetMessage) m).getElement(0) == XNetConstants.CS_SET_POWERMODE &&
011                ((jmri.jmrix.lenz.XNetMessage) m).getElement(1) == XNetConstants.CS_SET_POWERMODE;
012    }
013
014    @Override
015    public String formatMessage(jmri.jmrix.Message m) {
016        if (m.getElement(0) == XNetConstants.CS_SET_POWERMODE
017                && m.getElement(1) == XNetConstants.CS_SET_POWERMODE
018                && m.getElement(2) == XNetConstants.CS_POWERMODE_AUTO) {
019            return Bundle.getMessage("XNetMessageRequestCSPowerModeAuto");
020        } else if (m.getElement(0) == XNetConstants.CS_SET_POWERMODE
021                && m.getElement(1) == XNetConstants.CS_SET_POWERMODE
022                && m.getElement(2) == XNetConstants.CS_POWERMODE_MANUAL) {
023            return Bundle.getMessage("XNetMessageRequestCSPowerModeManual");
024        }
025        throw new IllegalArgumentException("Unknown CS Power Mode Request Type");
026    }
027}