package org.activityinfo.model.expr.functions;
import java.util.HashMap;
import java.util.Map;
public final class ExprFunctions {
private static Map<String, ExprFunction> lookupMap;
private ExprFunctions() {
}
private static void register(ExprFunction function) {
lookupMap.put(function.getId(), function);
}
public static ExprFunction get(String name) {
if (lookupMap == null) {
lookupMap = new HashMap<>();
register(AndFunction.INSTANCE);
register(DivideFunction.INSTANCE);
register(EqualFunction.INSTANCE);
register(new MinusFunction());
register(new MultiplyFunction());
register(NotEqualFunction.INSTANCE);
register(NotFunction.INSTANCE);
register(OrFunction.INSTANCE);
register(PlusFunction.INSTANCE);
register(ContainsAllFunction.INSTANCE);
register(ContainsAnyFunction.INSTANCE);
register(NotContainsAllFunction.INSTANCE);
register(NotContainsAnyFunction.INSTANCE);
}
ExprFunction exprFunction = lookupMap.get(name);
if (exprFunction == null) {
throw new UnsupportedOperationException("No such function '" + name + "'");
}
return exprFunction;
}
}