Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/FunctionFactory.java @ 2569:0dd58ab7e118
Added functions to be used for fitting in the "Fixierungsanalyse" and "Extremwertermittlung".
flys-artifacts/trunk@4095 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Mon, 27 Feb 2012 14:16:30 +0000 |
parents | |
children | c0abfb695332 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/math/fitting/FunctionFactory.java Mon Feb 27 14:16:30 2012 +0000 @@ -0,0 +1,43 @@ +package de.intevation.flys.artifacts.math.fitting; + +import java.util.Collection; +import java.util.LinkedHashMap; +import java.util.Map; + +public final class FunctionFactory +{ + private static FunctionFactory instance; + + private Map<String, Function> functions; + + private FunctionFactory() { + functions = new LinkedHashMap<String, Function>(); + + registerFunction(new Log()); + registerFunction(new Linear()); + registerFunction(new LogLinear()); + registerFunction(new Exp()); + registerFunction(new Quad()); + registerFunction(new Pow()); + } + + public static synchronized FunctionFactory getInstance() { + if (instance == null) { + instance = new FunctionFactory(); + } + return instance; + } + + public Function getFunction(String name) { + return functions.get(name); + } + + public void registerFunction(Function function) { + functions.put(function.getName(), function); + } + + public Collection<Function> getFunctions() { + return functions.values(); + } +} +// vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :