Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / function / programming / EvalFunction.java @ 45213

History | View | Annotate | Download (1.15 KB)

1
package org.gvsig.expressionevaluator.impl.function.programming;
2

    
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.Expression;
5
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_EVAL;
6
import org.gvsig.expressionevaluator.ExpressionUtils;
7
import org.gvsig.expressionevaluator.Function;
8
import org.gvsig.expressionevaluator.Interpreter;
9
import org.gvsig.expressionevaluator.spi.AbstractFunction;
10

    
11
public class EvalFunction extends AbstractFunction {
12

    
13
    public EvalFunction() {
14
        super(
15
            Function.GROUP_PROGRAMMING, 
16
            FUNCTION_EVAL, 
17
            Range.is(1),
18
            "",
19
            FUNCTION_EVAL+"({{string}})",
20
            null,
21
            "Object",
22
            false
23
        );
24
    }
25
    
26
    @Override
27
    public boolean allowConstantFolding() {
28
        return false;
29
    }    
30
    
31
    @Override
32
    public Object call(Interpreter interpreter, final Object[] args) throws Exception {
33
        String s = this.getStr(args, 0);
34
        Expression exp = ExpressionUtils.createExpression(s);
35
        Object v = exp.execute(interpreter.getSymbolTable());
36
        return v;
37
        
38
    }
39
    
40

    
41
}