001package jmri.jmrix.lenz.messageformatters;
002
003import jmri.jmrix.Message;
004import jmri.jmrix.lenz.XNetConstants;
005import jmri.jmrix.lenz.XNetReply;
006import jmri.jmrix.lenz.XPressNetMessageFormatter;
007
008/**
009 * Format replies for XPressNet LI101F reply for Baud Rate.
010 *
011 * @author Paul Bender Copyright (C) 205
012 */
013public class XNetLI101BaudReplyFormatter implements XPressNetMessageFormatter {
014    private static final String X_NET_REPLY_LI_BAUD = "XNetReplyLIBaud";
015
016    @Override
017    public boolean handlesMessage(Message m) {
018        return m instanceof XNetReply && 
019                m.getElement(0) == XNetConstants.LI101_REQUEST && 
020                m.getElement(1) == XNetConstants.LI101_REQUEST_BAUD;
021    }
022
023    @Override
024    public String formatMessage(Message m) {
025        if (!handlesMessage(m)) {
026            throw new IllegalArgumentException("Message is not supported");
027        }
028        switch (m.getElement(2)) {
029            case 1:
030                return Bundle.getMessage(X_NET_REPLY_LI_BAUD, Bundle.getMessage("LIBaud19200"));
031            case 2:
032                return Bundle.getMessage(X_NET_REPLY_LI_BAUD, Bundle.getMessage("Baud38400"));
033            case 3:
034                return Bundle.getMessage(X_NET_REPLY_LI_BAUD, Bundle.getMessage("Baud57600"));
035            case 4:
036                return Bundle.getMessage(X_NET_REPLY_LI_BAUD, Bundle.getMessage("Baud115200"));
037            default:
038                return Bundle.getMessage(X_NET_REPLY_LI_BAUD, Bundle.getMessage("BaudOther"));
039        }
040    }
041
042}