package com.github.pfichtner.jrunalyser.base.util;
import java.util.concurrent.TimeUnit;
import com.github.pfichtner.jrunalyser.base.data.DefaultDistance;
import com.github.pfichtner.jrunalyser.base.data.Distance;
import com.github.pfichtner.jrunalyser.base.data.DistanceUnit;
import com.github.pfichtner.jrunalyser.base.data.Duration;
public final class FixedDuration {
private final Duration fixedDuration;
public FixedDuration(Duration fixedDuration) {
this.fixedDuration = fixedDuration; // e.g. 1h
}
public Distance getDistance(Distance sourceDistance, Duration sourceDuration) {
DistanceUnit du = sourceDistance.getDistanceUnit();
TimeUnit tu = sourceDuration.getTimeUnit();
double converted = sourceDistance.getValue(du)
/ sourceDuration.getValue(tu) * this.fixedDuration.getValue(tu);
return DefaultDistance.of(converted, du);
}
}