001package jmri.jmrit.beantable.routetable;
002
003import jmri.Route;
004import jmri.Sensor;
005
006/**
007 * Route Table RouteSensor Elements.
008 *
009 * Split from {@link jmri.jmrit.beantable.RouteTableAction}
010 *
011 * @author Dave Duchamp Copyright (C) 2004
012 * @author Bob Jacobsen Copyright (C) 2007
013 * @author Simon Reader Copyright (C) 2008
014 * @author Pete Cressman Copyright (C) 2009
015 * @author Egbert Broerse Copyright (C) 2016
016 * @author Paul Bender Copyright (C) 2020
017 */
018class RouteSensor extends RouteElement {
019    private static final String SET_TO_ACTIVE = Bundle.getMessage("Set") + " " + Bundle.getMessage("SensorStateActive");
020    private static final String SET_TO_INACTIVE = Bundle.getMessage("Set") + " " + Bundle.getMessage("SensorStateInactive");
021
022    private static final String SET_TO_TOGGLE = Bundle.getMessage("Set") + " " + Bundle.getMessage("Toggle");
023
024    RouteSensor(String sysName, String userName) {
025        super(sysName, userName);
026    }
027
028    @Override
029    String getSetToState() {
030        switch (_setToState) {
031            case Sensor.INACTIVE:
032                return SET_TO_INACTIVE;
033            case Sensor.ACTIVE:
034                return SET_TO_ACTIVE;
035            case Route.TOGGLE:
036                return SET_TO_TOGGLE;
037            default:
038                log.warn("Unhandled route state: {}", _setToState);
039                break;
040        }
041        return "";
042    }
043
044    @Override
045    void setSetToState(String state) {
046        if (SET_TO_INACTIVE.equals(state)) {
047            _setToState = Sensor.INACTIVE;
048        } else if (SET_TO_ACTIVE.equals(state)) {
049            _setToState = Sensor.ACTIVE;
050        } else if (SET_TO_TOGGLE.equals(state)) {
051            _setToState = Route.TOGGLE;
052        }
053    }
054
055    private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(RouteSensor.class);
056}