
nl.tno.bim.nmd.scaling.NmdScalerFactory Maven / Gradle / Ivy
package nl.tno.bim.nmd.scaling;
import org.eclipse.jdt.core.compiler.InvalidInputException;
public final class NmdScalerFactory {
public NmdScaler create(String type, String description, String scaleUnit, Double[] coefficients, Double[] bounds, Double[] currentValues) throws InvalidInputException {
String lcType = type.toLowerCase();
NmdScaler scaler;
if (lcType.contains("lineair")) {
scaler = createLinScaler(scaleUnit, coefficients, bounds, currentValues);
} else if (lcType.contains("macht")) {
scaler = createPowScaler(scaleUnit, coefficients, bounds, currentValues);
} else if (lcType.contains("logaritmisch")) {
scaler = createLogScaler(scaleUnit, coefficients, bounds, currentValues);
} else if (lcType.contains("exponentieel")) {
scaler = createExpScaler(scaleUnit, coefficients, bounds, currentValues);
} else {
return null;
}
((NmdBaseScaler)scaler).setDescription(description);
return scaler;
}
public NmdExponentialScaler createExpScaler(String scaleUnit,
Double[] coefficients,
Double[] bounds,
Double[] currentValues) {
return new NmdExponentialScaler(scaleUnit, coefficients, bounds, currentValues);
}
public NmdLogarithmicScaler createLogScaler(String scaleUnit,
Double[] coefficients,
Double[] bounds,
Double[] currentValues) throws InvalidInputException {
return new NmdLogarithmicScaler(scaleUnit, coefficients, bounds, currentValues);
}
public NmdPowerScaler createPowScaler(String scaleUnit,
Double[] coefficients,
Double[] bounds,
Double[] currentValues) {
return new NmdPowerScaler(scaleUnit, coefficients, bounds, currentValues);
}
public NmdLinearScaler createLinScaler(String scaleUnit,
Double[] coefficients,
Double[] bounds,
Double[] currentValues) {
return new NmdLinearScaler(scaleUnit, coefficients, bounds, currentValues);
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy