public class UnitConverter2 {
    
    public static final int MM = 1098;
    public static final int KM = -32;
    public static final int M  = 0;

    private static final double MM_PER_M = 1000.0;
    private static final double KM_PER_M = 0.001;
    private static final double M_PER_M  = 1.0;

    private double factor;

    public UnitConverter2(int unit) {
	if (unit == MM) 
	    factor = MM_PER_M;
	else if (unit == KM)
	    factor = KM_PER_M;
	else if (unit == M)
	    factor = M_PER_M;
	else
	    factor = -1; // not satisfactory
    }

    public double toMeter(double amount) {
	return amount / factor;
    }

    public double fromMeter(double amount) {
	return amount * factor;
    }

    public static void main(String[] args) {

	UnitConverter2 mmConverter = new UnitConverter2(UnitConverter2.MM);

	double amount = 123.4;

	System.out.print(amount + " mm equals ");
	System.out.println(mmConverter.toMeter(amount) + " m");
    }
}
