package com.github.pfichtner.jrunalyser.base.data;
public enum DistanceUnit {
METERS {
@Override
public double toMeter(double distance) {
return distance;
}
@Override
public double toKilometer(double distance) {
return distance / 1000;
}
@Override
public double toFeet(double distance) {
return distance * 3.280948;
}
@Override
public double toMiles(double distance) {
return distance * 0.000621371;
}
@Override
public double convert(double d, DistanceUnit u) {
return u.toMeter(d);
}
},
KILOMETERS {
@Override
public double toMeter(double distance) {
return distance * 1000;
}
@Override
public double toKilometer(double distance) {
return distance;
}
@Override
public double toFeet(double distance) {
return distance * 3280.947538;
}
@Override
public double toMiles(double distance) {
return distance * 0.6213712;
}
@Override
public double convert(double d, DistanceUnit u) {
return u.toKilometer(d);
}
},
FEET {
@Override
public double toMeter(double distance) {
return distance * 0.3048;
}
@Override
public double toKilometer(double distance) {
return distance * 0.0003048;
}
@Override
public double toFeet(double distance) {
return distance;
}
@Override
public double toMiles(double distance) {
return distance * 0.000189394;
}
@Override
public double convert(double d, DistanceUnit u) {
return u.toFeet(d);
}
},
MILES {
@Override
public double toMeter(double distance) {
return distance * 1609.344;
}
@Override
public double toKilometer(double distance) {
return distance * 1.60934;
}
@Override
public double toFeet(double distance) {
return distance * 5280;
}
@Override
public double toMiles(double distance) {
return distance;
}
@Override
public double convert(double d, DistanceUnit u) {
return u.toMiles(d);
}
};
public abstract double toMeter(double distance);
public abstract double toKilometer(double distance);
public abstract double toFeet(double distance);
public abstract double toMiles(double distance);
public abstract double convert(double d, DistanceUnit u);
}