Revision 43518

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/SQLSymbolTable.java
50 50
import org.gvsig.expressionevaluator.impl.function.numeric.TanFunction;
51 51
import org.gvsig.expressionevaluator.impl.function.numeric.TanhFunction;
52 52
import org.gvsig.expressionevaluator.impl.function.numeric.ZeroFunction;
53
import org.gvsig.expressionevaluator.impl.function.spatial.STAreaFunction;
54
import org.gvsig.expressionevaluator.impl.function.spatial.STAsTextFunction;
55
import org.gvsig.expressionevaluator.impl.function.spatial.STBufferFunction;
56
import org.gvsig.expressionevaluator.impl.function.spatial.STCentroidFunction;
57
import org.gvsig.expressionevaluator.impl.function.spatial.STContainsFunction;
58
import org.gvsig.expressionevaluator.impl.function.spatial.STConvexHullFunction;
59
import org.gvsig.expressionevaluator.impl.function.spatial.STCoveredByFunction;
60
import org.gvsig.expressionevaluator.impl.function.spatial.STCoversFunction;
61
import org.gvsig.expressionevaluator.impl.function.spatial.STCrossesFunction;
62
import org.gvsig.expressionevaluator.impl.function.spatial.STDiferenceFunction;
63
import org.gvsig.expressionevaluator.impl.function.spatial.STDimensionFunction;
64
import org.gvsig.expressionevaluator.impl.function.spatial.STDisjointFunction;
65
import org.gvsig.expressionevaluator.impl.function.spatial.STDistanceFunction;
66
import org.gvsig.expressionevaluator.impl.function.spatial.STEndPointFunction;
67
import org.gvsig.expressionevaluator.impl.function.spatial.STEnvelopeFunction;
68
import org.gvsig.expressionevaluator.impl.function.spatial.STGeomFromTextFunction;
69
import org.gvsig.expressionevaluator.impl.function.spatial.STGeometryNFunction;
70
import org.gvsig.expressionevaluator.impl.function.spatial.STIntersectionFunction;
71
import org.gvsig.expressionevaluator.impl.function.spatial.STIntersectsFunction;
72
import org.gvsig.expressionevaluator.impl.function.spatial.STIsSimpleFunction;
73
import org.gvsig.expressionevaluator.impl.function.spatial.STIsValidFunction;
74
import org.gvsig.expressionevaluator.impl.function.spatial.STNumGeometriesFunction;
75
import org.gvsig.expressionevaluator.impl.function.spatial.STNumPointsFunction;
76
import org.gvsig.expressionevaluator.impl.function.spatial.STOverlapsFunction;
77
import org.gvsig.expressionevaluator.impl.function.spatial.STPointNFunction;
78
import org.gvsig.expressionevaluator.impl.function.spatial.STStartPointFunction;
79
import org.gvsig.expressionevaluator.impl.function.spatial.STTouchesFunction;
80
import org.gvsig.expressionevaluator.impl.function.spatial.STUnionFunction;
81
import org.gvsig.expressionevaluator.impl.function.spatial.STWithinFunction;
82
import org.gvsig.expressionevaluator.impl.function.spatial.STXFunction;
83
import org.gvsig.expressionevaluator.impl.function.spatial.STYFunction;
84
import org.gvsig.expressionevaluator.impl.function.spatial.STZFunction;
53 85
import org.gvsig.expressionevaluator.impl.function.string.AsciiFunction;
54 86
import org.gvsig.expressionevaluator.impl.function.string.CharFunction;
55 87
import org.gvsig.expressionevaluator.impl.function.string.ConcatFunction;
......
158 190
        addFunction(new SubstringFunction());
159 191
        addFunction(new TrimFunction());
160 192
        addFunction(new UpperFunction());
193

  
194
        addFunction(new STAreaFunction());
195
        addFunction(new STAsTextFunction());
196
        addFunction(new STBufferFunction());
197
        addFunction(new STCentroidFunction());
198
        addFunction(new STContainsFunction());
199
        addFunction(new STConvexHullFunction());
200
        addFunction(new STCoveredByFunction());
201
        addFunction(new STCoversFunction());
202
        addFunction(new STCrossesFunction());
203
        addFunction(new STDiferenceFunction());
204
        addFunction(new STDimensionFunction());
205
        addFunction(new STDisjointFunction());
206
        addFunction(new STDistanceFunction());
207
        addFunction(new STEndPointFunction());
208
        addFunction(new STEnvelopeFunction());
209
        addFunction(new STGeomFromTextFunction());
210
        addFunction(new STGeometryNFunction());
211
        addFunction(new STIntersectionFunction());
212
        addFunction(new STIntersectsFunction());
213
        addFunction(new STIsSimpleFunction());
214
        addFunction(new STIsValidFunction());
215
        addFunction(new STNumGeometriesFunction());
216
        addFunction(new STNumPointsFunction());
217
        addFunction(new STOverlapsFunction());
218
        addFunction(new STPointNFunction());
219
        addFunction(new STStartPointFunction());
220
        addFunction(new STTouchesFunction());
221
        addFunction(new STUnionFunction());
222
        addFunction(new STWithinFunction());
223
        addFunction(new STXFunction());
224
        addFunction(new STYFunction());
225
        addFunction(new STZFunction());
161 226
    }
162 227
    
163 228
    private void addFunction(Function function) {
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/AbstractUnaryOperator.java
1 1
package org.gvsig.expressionevaluator.impl.function.operator;
2 2

  
3
import java.util.Date;
4 3
import org.apache.commons.lang3.Range;
5 4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
6 5

  
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STIntersectionFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STIntersectionFunction extends AbstractFunction {
8

  
9
    public STIntersectionFunction() {
10
        super("OGC", "ST_Intersection", Range.is(2));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        Geometry r = getGeom(args, 0).intersection(getGeom(args, 1));
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STPointNFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
7
import org.gvsig.fmap.geom.primitive.Point;
8

  
9
public class STPointNFunction extends AbstractFunction {
10

  
11
    public STPointNFunction() {
12
        super("OGC", "ST_PointN", Range.is(2));
13
    }
14
    
15
    @Override
16
    public Object call(Object[] args)  throws Exception {
17
        Geometry geom = getGeom(args, 0);
18
        if ( geom instanceof OrientablePrimitive ) {
19
            Point n = ((OrientablePrimitive) geom).getVertex(getInt(args, 1));
20
            return n;
21
        }
22
        return null;
23
    }
24
    
25
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STStartPointFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
7
import org.gvsig.fmap.geom.primitive.Point;
8

  
9
public class STStartPointFunction extends AbstractFunction {
10

  
11
    public STStartPointFunction() {
12
        super("OGC", "ST_StartPoint", Range.is(1));
13
    }
14
    
15
    @Override
16
    public Object call(Object[] args)  throws Exception {
17
        Geometry geom = getGeom(args, 0);
18
        if ( geom instanceof OrientablePrimitive ) {
19
            Point n = ((OrientablePrimitive) geom).getVertex(0);
20
            return n;
21
        }
22
        return null;
23
    }
24
    
25
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STYFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5

  
6
public class STYFunction extends AbstractFunction {
7

  
8
    public STYFunction() {
9
        super("OGC", "ST_Y", Range.is(1));
10
    }
11
    
12
    @Override
13
    public Object call(Object[] args)  throws Exception {
14
        double r = getPoint(args, 0).getY();
15
        return r;
16
    }
17
    
18
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STBufferFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STBufferFunction extends AbstractFunction {
8

  
9
    public STBufferFunction() {
10
        super("OGC", "ST_Buffer", Range.is(2));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        Geometry r = getGeom(args, 0).buffer(getDouble(args, 1));
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STGeometryNFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.aggregate.Aggregate;
7
import org.gvsig.fmap.geom.primitive.Primitive;
8

  
9
public class STGeometryNFunction extends AbstractFunction {
10

  
11
    public STGeometryNFunction() {
12
        super("OGC", "ST_GeometryN", Range.is(2));
13
    }
14
    
15
    @Override
16
    public Object call(Object[] args)  throws Exception {
17
        Geometry geom = getGeom(args, 0);
18
        if( geom instanceof Aggregate ) {
19
            Primitive r = ((Aggregate) geom).getPrimitiveAt(getInt(args, 1));
20
            return r;
21
        }
22
       return null;
23
    }
24
    
25
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STGeomFromTextFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.GeometryLocator;
7
import org.gvsig.fmap.geom.GeometryManager;
8

  
9
public class STGeomFromTextFunction extends AbstractFunction {
10

  
11
    public STGeomFromTextFunction() {
12
        super("OGC", "ST_GeomFromText", Range.is(1));
13
    }
14
    
15
    @Override
16
    public Object call(Object[] args)  throws Exception {
17
        GeometryManager geomManager = GeometryLocator.getGeometryManager();
18
        String wkt = getStr(args, 0);
19
        Geometry r = geomManager.createFrom(wkt);
20
        return r;
21
    }
22
    
23
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STEndPointFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
7
import org.gvsig.fmap.geom.primitive.Point;
8

  
9
public class STEndPointFunction extends AbstractFunction {
10

  
11
    public STEndPointFunction() {
12
        super("OGC", "ST_EndPoint", Range.is(1));
13
    }
14
    
15
    @Override
16
    public Object call(Object[] args)  throws Exception {
17
        Geometry geom = getGeom(args, 0);
18
        if ( geom instanceof OrientablePrimitive ) {
19
            int n = ((OrientablePrimitive) geom).getNumVertices();
20
            Point p = ((OrientablePrimitive) geom).getVertex(n-1);
21
            return p;
22
        }
23
        return null;
24
    }
25
    
26
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STIsSimpleFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STIsSimpleFunction extends AbstractFunction {
8

  
9
    public STIsSimpleFunction() {
10
        super("OGC", "ST_IsSimple", Range.is(1));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        boolean r = getGeom(args, 0).isSimple();
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STConvexHullFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STConvexHullFunction extends AbstractFunction {
8

  
9
    public STConvexHullFunction() {
10
        super("OGC", "ST_ConvexHull", Range.is(1));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        Geometry r = getGeom(args, 0).convexHull();
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STUnionFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STUnionFunction extends AbstractFunction {
8

  
9
    public STUnionFunction() {
10
        super("OGC", "ST_Union", Range.is(2));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        Geometry r = getGeom(args, 0).union(getGeom(args, 1));
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STIsValidFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STIsValidFunction extends AbstractFunction {
8

  
9
    public STIsValidFunction() {
10
        super("OGC", "ST_IsValid", Range.is(1));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        boolean r = getGeom(args, 0).isValid();
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STNumPointsFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.primitive.OrientablePrimitive;
7

  
8
public class STNumPointsFunction extends AbstractFunction {
9

  
10
    public STNumPointsFunction() {
11
        super("OGC", "ST_NumPoints", Range.is(1));
12
    }
13
    
14
    @Override
15
    public Object call(Object[] args)  throws Exception {
16
        Geometry geom = getGeom(args, 0);
17
        if ( geom instanceof OrientablePrimitive ) {
18
            int n = ((OrientablePrimitive) geom).getNumVertices();
19
            return n;
20
        }
21
        return null;
22
    }
23
    
24
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STXFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5

  
6
public class STXFunction extends AbstractFunction {
7

  
8
    public STXFunction() {
9
        super("OGC", "ST_X", Range.is(1));
10
    }
11
    
12
    @Override
13
    public Object call(Object[] args)  throws Exception {
14
        double r = getPoint(args, 0).getX();
15
        return r;
16
    }
17
    
18
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STAsTextFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5

  
6
public class STAsTextFunction extends AbstractFunction {
7

  
8
    public STAsTextFunction() {
9
        super("OGC", "ST_AsText", Range.is(1));
10
    }
11
    
12
    @Override
13
    public Object call(Object[] args)  throws Exception {
14
        String r = getGeom(args, 0).convertToWKT();
15
        return r;
16
    }
17
    
18
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STZFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STZFunction extends AbstractFunction {
8

  
9
    public STZFunction() {
10
        super("OGC", "ST_Z", Range.is(1));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        double r = getPoint(args, 0).getCoordinateAt(Geometry.DIMENSIONS.Z);
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STEnvelopeFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.primitive.Envelope;
7

  
8
public class STEnvelopeFunction extends AbstractFunction {
9

  
10
    public STEnvelopeFunction() {
11
        super("OGC", "ST_Envelope", Range.is(1));
12
    }
13
    
14
    @Override
15
    public Object call(Object[] args)  throws Exception {
16
        Envelope r = getGeom(args, 0).getEnvelope();
17
        return r;
18
    }
19
    
20
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STNumGeometriesFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.aggregate.Aggregate;
7

  
8
public class STNumGeometriesFunction extends AbstractFunction {
9

  
10
    public STNumGeometriesFunction() {
11
        super("OGC", "ST_NumGeometries", Range.is(1));
12
    }
13
    
14
    @Override
15
    public Object call(Object[] args)  throws Exception {
16
        Geometry geom = getGeom(args, 0);
17
        if( geom instanceof Aggregate ) {
18
            int r = ((Aggregate) geom).getPrimitivesNumber();
19
            return r;
20
        }
21
       return null;
22
    }
23
    
24
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STDiferenceFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6

  
7
public class STDiferenceFunction extends AbstractFunction {
8

  
9
    public STDiferenceFunction() {
10
        super("OGC", "ST_Diference", Range.is(2));
11
    }
12
    
13
    @Override
14
    public Object call(Object[] args)  throws Exception {
15
        Geometry r = getGeom(args, 0).difference(getGeom(args, 1));
16
        return r;
17
    }
18
    
19
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/spatial/STDimensionFunction.java
1
package org.gvsig.expressionevaluator.impl.function.spatial;
2

  
3
import org.apache.commons.lang3.Range;
4
import org.gvsig.expressionevaluator.spi.AbstractFunction;
5
import org.gvsig.fmap.geom.Geometry;
6
import org.gvsig.fmap.geom.type.GeometryType;
7

  
8
public class STDimensionFunction extends AbstractFunction {
9

  
10
    public STDimensionFunction() {
11
        super("OGC", "ST_Dimension", Range.is(1));
12
    }
13

  
14
    @Override
15
    public Object call(Object[] args) throws Exception {
16
        Geometry geom = getGeom(args, 0);
17
        GeometryType type = geom.getGeometryType();
18
        if( type.isSubTypeOf(Geometry.TYPES.POINT)
19
            || type.isSubTypeOf(Geometry.TYPES.MULTIPOINT) ) {
20
            return 0;
21
        }
22
        if( type.isSubTypeOf(Geometry.TYPES.CURVE)
23
            || type.isSubTypeOf(Geometry.TYPES.MULTICURVE) ) {
24
            return 1;
25
        }
26
        if( type.isSubTypeOf(Geometry.TYPES.SURFACE)
27
            || type.isSubTypeOf(Geometry.TYPES.MULTISURFACE) ) {
28
            return 2;
29
        }
30
        if( type.isSubTypeOf(Geometry.TYPES.SOLID) ) {
31
            return 3;
32
        }
33
        return -1;
34
    }
35

  
36
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/numeric/TanhFunction.java
6 6
public class TanhFunction extends AbstractFunction {
7 7

  
8 8
    public TanhFunction() {
9
        super("Numeric", "TANH", Range.is(0));
9
        super("Numeric", "TANH", Range.is(1));
10 10
    }
11 11

  
12 12
    @Override

Also available in: Unified diff