001package jmri.jmrix.bachrus.speedmatcher.speedStepScale;
002
003import java.util.Locale;
004
005import jmri.jmrix.bachrus.speedmatcher.SpeedMatcher.SpeedTableStep;
006import static jmri.jmrix.bachrus.speedmatcher.speedStepScale.SpeedStepScaleSpeedMatcher.getSpeedForSpeedTableStep;
007
008/**
009 * Wrapper class for a SpeedTableStep and its corresponding speed, including a
010 * toString override for use in a speed selector combobox.
011 *
012 * @author toddt
013 */
014public class SpeedTableStepSpeed {
015
016    private final SpeedTableStep speedTableStep;
017    private final float speed;
018
019    /**
020     * Creates a SpeedTableStepSpeed from the given speedTableStep
021     * @param speedTableStep the SpeedTableStep to use
022     */
023    public SpeedTableStepSpeed(SpeedTableStep speedTableStep) {
024        this.speedTableStep = speedTableStep;
025        this.speed = getSpeedForSpeedTableStep(this.speedTableStep.getSpeedStep());
026    }
027
028    /**
029     * Gets this SpeedTableStepSpeed's SpeedTableStep
030     * @return this SpeedTableStepSpeed's SpeedTableStep
031     */
032    public SpeedTableStep getSpeedTableStep() {
033        return speedTableStep;
034    }
035
036    /**
037     * Gets this SpeedTableStepSpeed's speed
038     * @return the Speed TableStepSpeed's speed
039     */
040    public float getSpeed() {
041        return speed;
042    }
043
044    /**
045     * Converts this SpeedTableStepSpeed to an I18N string.
046     * @return a single decimal string of this SpeedTableStepSpeed's speed
047     */
048    @Override
049    public String toString() {
050        return String.format(Locale.getDefault(), "%.1f", this.speed);
051    }
052}