package org.andork.unit;
import java.util.Collections;
import java.util.LinkedHashSet;
import java.util.Set;
public abstract class UnitType<T extends UnitType<T>> {
private final Set<Unit<T>> units = new LinkedHashSet<>();
private final Set<Unit<T>> unmodifiableUnits = Collections.unmodifiableSet(units);
protected final void addUnit(Unit<T> unit) {
units.add(unit);
}
public abstract double convert(double d, Unit<T> from, Unit<T> to);
public final Set<Unit<T>> units() {
return unmodifiableUnits;
}
}