001package gudusoft.gsqlparser.compiler.expr.function;
002
003import gudusoft.gsqlparser.compiler.IEvaluationContext;
004import gudusoft.gsqlparser.compiler.expr.IExprFunction;
005import gudusoft.gsqlparser.compiler.expr.TExprException;
006import gudusoft.gsqlparser.compiler.expr.TExprFunction;
007import gudusoft.gsqlparser.compiler.expr.function.excel.*;
008
009import java.util.HashMap;
010import java.util.Map;
011
012public class TExcelFunctionProvider implements IFunctionProvider {
013
014    private static Map<String, IExprFunction> functions = new HashMap( );
015
016    static {
017        functions.put("ABS", new ABS());
018    }
019
020    public boolean hasFunction( TExprFunction function )
021    {
022        return functions.containsKey( function.getName( ).toUpperCase( ) );
023    }
024
025    public Object evaluate(IEvaluationContext context, TExprFunction function )
026            throws TExprException
027    {
028        IExprFunction f = functions.get( function.getName( ).toUpperCase( ) );
029        if ( f != null )
030            return f.evaluate( context, function.getArgs( ) );
031        return null;
032    }
033
034}