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 / $IdentifierFunction.java @ 46050

History | View | Annotate | Download (1.37 KB)

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

    
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.Function;
5
import org.gvsig.expressionevaluator.Interpreter;
6
import org.gvsig.expressionevaluator.spi.AbstractFunction;
7
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_$CONSTANT;
8
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_$IDENTIFIER;
9

    
10
public class $IdentifierFunction extends AbstractFunction {
11

    
12
    public $IdentifierFunction() {
13
        super(Function.GROUP_PROGRAMMING, 
14
                FUNCTION_$IDENTIFIER, 
15
            Range.is(1),
16
            "Evaluate the parameter as a string and return the value of the variable referred by this string.\n" +
17
                "This function is used to mark that the result of evaluate the parameter must be "+
18
                    "converted to a variable identifier when generating the SQL expression. ",
19
            FUNCTION_$IDENTIFIER+"({{expression}})",
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 identifier = this.getStr(args, 0);
34
        return interpreter.getSymbolTable().value(identifier);        
35
    }
36
    
37

    
38
}