Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.h2spatial / org.gvsig.h2spatial.h2gis132 / org.gvsig.h2spatial.h2gis132.provider / src / main / java / org / gvsig / fmap / dal / store / h2 / expressionbuilderformatter / ST_AsBinary.java @ 46414

History | View | Annotate | Download (1.29 KB)

1 45472 jjdelcerro
package org.gvsig.fmap.dal.store.h2.expressionbuilderformatter;
2
3
import java.text.MessageFormat;
4
import java.util.List;
5
import org.apache.commons.lang3.StringUtils;
6
import static org.gvsig.expressionevaluator.GeometryExpressionBuilder.FUNCTION_ST_ASBINARY;
7
import org.gvsig.expressionevaluator.ExpressionBuilder.Function;
8
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
9
import org.gvsig.expressionevaluator.Formatter;
10
import org.gvsig.fmap.dal.SQLBuilder;
11
12
/**
13
 *
14
 * @author jjdelcerro
15
 */
16
class ST_AsBinary implements Formatter<Value> {
17
18
    private final Formatter<Value> formatter;
19
    private final SQLBuilder builder;
20
21
    public ST_AsBinary(SQLBuilder builder, Formatter<Value> formatter) {
22
        this.builder = builder;
23
        this.formatter = formatter;
24
    }
25
26
    @Override
27
    public boolean canApply(Value value) {
28
        if (value instanceof Function) {
29
            return StringUtils.equalsIgnoreCase(FUNCTION_ST_ASBINARY, ((Function) value).name());
30
        }
31
        return false;
32
    }
33
34
    @Override
35
    public String format(Value function) {
36
        List<Value> parameters = ((Function) function).parameters();
37
        String p1 = parameters.get(0).toString(formatter);
38
        String r = MessageFormat.format("NVL2({0},ST_AsBinary({0}),NULL)", p1);
39
        return r;
40
    }
41
42
}