/*
* Copyright (C) 2012.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 3 or
* version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*/
package uk.me.parabola.mkgmap.osmstyle.function;
import uk.me.parabola.mkgmap.osmstyle.function.MaxSpeedFunction.SpeedUnit;
/**
* A factory for style functions.
* @author WanMil
*/
public class FunctionFactory {
/**
* Returns a new instance of a style function with the given name.
*
* @param name the style function name
* @return the style function instance or {@code null} if there is no such function
*/
public static StyleFunction createFunction(String name) {
if ("length".equals(name))
return new LengthFunction();
//} else if ("get_tag".equals(name))
// return new GetTagFunction(tag);
if ("is_closed".equals(name)) {
return new IsClosedFunction();
}
if ("is_complete".equals(name)) {
return new IsCompleteFunction();
}
if ("area_size".equals(name))
return new AreaSizeFunction();
if ("maxspeedkmh".equals(name))
return new MaxSpeedFunction(SpeedUnit.KMH);
if ("maxspeedmph".equals(name))
return new MaxSpeedFunction(SpeedUnit.MPH);
if ("type".equals(name))
return new TypeFunction();
if ("osmid".equals(name))
return new OsmIdFunction();
return null;
}
}