Statistics
| Revision:

gvsig-mssqlserver / trunk / org.gvsig.mssqlserver / org.gvsig.mssqlserver.provider / src / main / java / org / gvsig / mssqlserver / dal / expressionbuilderformatter / MSSQLVariable.java @ 213

History | View | Annotate | Download (1.24 KB)

1
package org.gvsig.mssqlserver.dal.expressionbuilderformatter;
2

    
3
import org.apache.commons.lang3.StringUtils;
4
import org.gvsig.expressionevaluator.ExpressionBuilder;
5
import static org.gvsig.expressionevaluator.ExpressionBuilder.EMPTY_FORMATTER;
6
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
7
import org.gvsig.expressionevaluator.ExpressionBuilder.Variable;
8
import org.gvsig.expressionevaluator.Formatter;
9
import org.gvsig.fmap.dal.SQLBuilder;
10

    
11
/**
12
 *
13
 * @author jjdelcerro
14
 */
15
class MSSQLVariable implements Formatter<Value> {
16

    
17
    private final Formatter<Value> formatter;
18
    private final SQLBuilder builder;
19
    private final ExpressionBuilder expbuilder;
20
    
21
    public MSSQLVariable(SQLBuilder builder, Formatter<Value> formatter) {
22
        this.builder = builder;
23
        this.formatter = formatter;
24
        this.expbuilder = builder.expression();
25
    }
26
    
27
    @Override
28
    public boolean canApply(Value value) {
29
        return value instanceof Variable;
30
    }
31

    
32
    @Override
33
    public String format(Value function) {
34
        String name = ((Variable) function).name();
35

    
36
        if (StringUtils.isEmpty(name)) {
37
            return this.expbuilder.toString(EMPTY_FORMATTER);
38
        }
39

    
40
        return this.builder.as_identifier(name);
41

    
42
    }
43
}
44