Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.geometry / org.gvsig.expressionevaluator.geometry.lib / org.gvsig.expressionevaluator.geometry.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / function / spatial / STMakePointFunction.java @ 44644

History | View | Annotate | Download (1.39 KB)

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

    
3
import org.apache.commons.lang3.Range;
4
import static org.gvsig.expressionevaluator.GeometryExpressionBuilderHelper.FUNCTION_ST_MAKEPOINT;
5
import org.gvsig.expressionevaluator.Interpreter;
6
import org.gvsig.expressionevaluator.spi.AbstractGeometryFunction;
7
import org.gvsig.fmap.geom.Geometry;
8
import org.gvsig.fmap.geom.GeometryUtils;
9

    
10
public class STMakePointFunction extends AbstractGeometryFunction {
11

    
12
    public STMakePointFunction() {
13
        super("OGC", FUNCTION_ST_MAKEPOINT, Range.between(2,4));
14
    }
15
    
16
    @Override
17
    public boolean allowConstantFolding() {
18
        return true;
19
    }
20
    
21
    @Override
22
    public Object call(Interpreter interpreter, Object[] args) throws Exception {
23
        double x = this.getDouble(args, 0);
24
        double y = this.getDouble(args, 1);
25
        Geometry geom;
26
        switch(args.length) {
27
            default:
28
            case 2:
29
                geom = GeometryUtils.createPoint(x, y);
30
                break;
31
            case 3:
32
                double z = this.getDouble(args, 2);
33
                geom = GeometryUtils.createPoint(x, y, z);
34
                break;
35
            case 4:
36
                z = this.getDouble(args, 2);
37
                double m = this.getDouble(args, 3);
38
                geom = GeometryUtils.createPoint(x, y, z, m);
39
                break;
40
        }
41
        return geom;
42
    }
43
    
44
}