Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.plugin / org.gvsig.sqlite / org.gvsig.sqlite.provider / src / main / java / org / gvsig / sqlite / dal / expressionbuilderformatter / MOD.java @ 47579

History | View | Annotate | Download (2.11 KB)

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

    
3
import java.text.MessageFormat;
4
import java.util.List;
5
import org.apache.commons.lang3.ArrayUtils;
6
import org.apache.commons.lang3.StringUtils;
7
import org.gvsig.expressionevaluator.Code;
8
import org.gvsig.expressionevaluator.ExpressionBuilder;
9
import org.gvsig.expressionevaluator.ExpressionBuilder.Function;
10
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
11
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
12
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
13
import org.gvsig.expressionevaluator.Formatter;
14
import org.gvsig.expressionevaluator.MutableSymbolTable;
15
import org.gvsig.fmap.dal.SQLBuilder;
16
import static org.gvsig.fmap.dal.SQLBuilder.PROP_FEATURE_TYPE;
17
import static org.gvsig.fmap.dal.SQLBuilder.PROP_QUERY;
18
import static org.gvsig.fmap.dal.SQLBuilder.PROP_TABLENAME;
19
import org.gvsig.fmap.dal.feature.FeatureAttributeDescriptor;
20
import org.gvsig.fmap.dal.feature.FeatureQuery;
21
import org.gvsig.fmap.dal.feature.FeatureType;
22
import org.gvsig.fmap.geom.Geometry;
23
import org.gvsig.sqlite.dal.geopackage.GeopackageUtils;
24
import org.gvsig.sqlite.dal.geopackage.index.GeopackageIndex;
25

    
26
/**
27
 *
28
 * @author jjdelcerro
29
 */
30
public class MOD implements Formatter<Value> {
31
    
32
    private final SQLBuilder sqlbuilder;
33
    private final Formatter<Value> formatter;
34
    
35
    public MOD(SQLBuilder sqlbuilder, Formatter<Value> formatter) {
36
        this.sqlbuilder = sqlbuilder;
37
        this.formatter = formatter;
38
    }
39
    @Override
40
    public boolean canApply(ExpressionBuilder.Value value) {
41
        if (value instanceof ExpressionBuilder.Function) {
42
            return StringUtils.equalsIgnoreCase("MOD", ((Function) value).name());
43
        }
44
        return false;
45
    }
46

    
47
    @Override
48
    public String format(Value function) {
49
        List<Value> parameters = ((Function) function).parameters();
50
        Value p1 = parameters.get(0);
51
        Value p2 = parameters.get(1);
52
        String p1s = p1.toString(formatter);
53
        String p2s = p2.toString(formatter);
54

    
55
        String r = MessageFormat.format("(({0})%({1}))", p1s, p2s);
56
        return r;
57
    }
58

    
59
}