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}