package org.droidplanner.android.utils.unit.providers.speed; import org.beyene.sius.operation.Operation; import org.beyene.sius.unit.UnitIdentifier; import org.beyene.sius.unit.composition.speed.MeterPerSecond; import org.beyene.sius.unit.composition.speed.SpeedUnit; import org.beyene.sius.unit.impl.FactorySpeed; /** * Created by Fredia Huya-Kouadio on 1/21/15. */ public abstract class SpeedUnitProvider { public MeterPerSecond boxBaseValue(double valueInMps){ return FactorySpeed.mps(valueInMps); } public SpeedUnit boxBaseValueToTarget(double valueInMps){ MeterPerSecond base = boxBaseValue(valueInMps); return fromBaseToTarget(base); } public abstract SpeedUnit fromBaseToTarget(MeterPerSecond base); public MeterPerSecond fromTargetToBase(SpeedUnit target){ if(target instanceof MeterPerSecond) return (MeterPerSecond) target; return Operation.convert(target, UnitIdentifier.METER_PER_SECOND); } public abstract SpeedUnit boxTargetValue(double speedInTargetUnits); }