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 / $HostExpressionFunction.java @ 47734

History | View | Annotate | Download (1.78 KB)

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

    
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.Code;
5
import org.gvsig.expressionevaluator.Codes;
6
import org.gvsig.expressionevaluator.Function;
7
import org.gvsig.expressionevaluator.Interpreter;
8
import org.gvsig.expressionevaluator.spi.AbstractFunction;
9
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_$HOSTEXPRESSION;
10
import org.gvsig.expressionevaluator.Formatter;
11

    
12
public class $HostExpressionFunction extends AbstractFunction {
13

    
14
    // https://docs.oracle.com/cd/A87860_01/doc/java.817/a83723/blangfe3.htm
15
    // https://docs.oracle.com/cd/A57673_01/DOC/api/doc/PAD18/ch4.htm
16
    // Esta funcion esta pensada para dar soporte a la funcionadad de "Host expressions" de 
17
    // SQLJ o host variables de pl/sql
18
    
19
    public static final String MODE_SPECIFIER_IN = "IN";
20
    public static final String MODE_SPECIFIER_OUT = "OUT";
21
    public static final String MODE_SPECIFIER_INOUT = "INOUT";
22
    public static final String MODE_SPECIFIER_ID = "ID$";
23
    
24
    
25
    public $HostExpressionFunction() {
26
        super(Function.GROUP_PROGRAMMING, 
27
                FUNCTION_$HOSTEXPRESSION, 
28
            Range.between(1,2),
29
            "Returns the value passed as a parameter.\n",
30
            FUNCTION_$HOSTEXPRESSION+"({{expression}},mode_specifier)",
31
            null,
32
            "Object",
33
            false
34
        );
35
    }
36
    
37
    @Override
38
    public boolean allowConstantFolding() {
39
        return false;
40
    }    
41
    
42
    @Override
43
    public Object call(Interpreter interpreter, final Object[] args) throws Exception {
44
        return args[0];        
45
    }
46

    
47
    @Override
48
    public String toString(Codes args, Formatter<Code> formatter) {
49
        return ":("+args.get(0).toString()+")";
50
    }
51

    
52
}