teichmann@5863: /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde teichmann@5863: * Software engineering by Intevation GmbH teichmann@5863: * teichmann@5863: * This file is Free Software under the GNU AGPL (>=v3) teichmann@5863: * and comes with ABSOLUTELY NO WARRANTY! Check out the teichmann@5863: * documentation coming with Dive4Elements River for details. teichmann@5863: */ teichmann@5863: teichmann@5831: package org.dive4elements.river.artifacts.math.fitting; sascha@2569: sascha@2569: import java.util.Collection; sascha@2569: import java.util.LinkedHashMap; sascha@2569: import java.util.Map; sascha@2569: sascha@2569: public final class FunctionFactory sascha@2569: { sascha@2569: private static FunctionFactory instance; sascha@2569: sascha@2569: private Map functions; sascha@2569: sascha@2569: private FunctionFactory() { sascha@2569: functions = new LinkedHashMap(); sascha@2569: sascha@3178: registerFunction(Log.INSTANCE); sascha@3178: registerFunction(Linear.INSTANCE); sascha@3178: registerFunction(LogLinear.INSTANCE); sascha@3178: registerFunction(Exp.INSTANCE); sascha@3178: registerFunction(Quad.INSTANCE); sascha@3178: registerFunction(Pow.INSTANCE); sascha@3178: registerFunction(SQPow.INSTANCE); sascha@2569: } sascha@2569: sascha@2569: public static synchronized FunctionFactory getInstance() { sascha@2569: if (instance == null) { sascha@2569: instance = new FunctionFactory(); sascha@2569: } sascha@2569: return instance; sascha@2569: } sascha@2569: sascha@2569: public Function getFunction(String name) { sascha@2569: return functions.get(name); sascha@2569: } sascha@2569: sascha@2569: public void registerFunction(Function function) { sascha@2569: functions.put(function.getName(), function); sascha@2569: } sascha@2569: sascha@2569: public Collection getFunctions() { sascha@2569: return functions.values(); sascha@2569: } sascha@2569: } sascha@2569: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :