Statistics
| Revision:

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

History | View | Annotate | Download (1.46 KB)

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

    
3
import java.text.MessageFormat;
4
import java.util.List;
5
import org.apache.commons.lang3.StringUtils;
6

    
7
import org.gvsig.expressionevaluator.ExpressionBuilder;
8
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_ST_ASEWKB;
9
import org.gvsig.expressionevaluator.ExpressionBuilder.Function;
10
import org.gvsig.expressionevaluator.ExpressionBuilder.Constant;
11
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
12
import org.gvsig.expressionevaluator.Formatter;
13
import org.gvsig.fmap.dal.SQLBuilder;
14

    
15
/**
16
 *
17
 * @author jjdelcerro
18
 */
19
class ST_Equals implements Formatter<Value> {
20

    
21
    private final Formatter<Value> formatter;
22
    private final SQLBuilder builder;
23

    
24
    public ST_Equals(SQLBuilder builder, Formatter<Value> formatter) {
25
        this.builder = builder;
26
        this.formatter = formatter;
27
    }
28

    
29
    @Override
30
    public boolean canApply(Value value) {
31
        if (value instanceof Function) {
32
            return StringUtils.equalsIgnoreCase(ExpressionBuilder.FUNCTION_ST_EQUALS, ((Function) value).name());
33
        }
34
        return false;
35
    }
36

    
37
    @Override
38
    public String format(Value function) {
39
        List<Value> parameters = ((Function) function).parameters();
40
        String p1 = parameters.get(0).toString(formatter);
41
        String p2 = parameters.get(1).toString(formatter);
42
        String r = MessageFormat.format("(({0}).STEquals({1})=1)", p1, p2);
43
        return r;
44
    }
45

    
46
}