You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by js...@apache.org on 2019/11/27 11:23:35 UTC
[sis] branch feat/sqlmm updated (07e2985 -> 1dac055)
This is an automated email from the ASF dual-hosted git repository.
jsorel pushed a change to branch feat/sqlmm
in repository https://gitbox.apache.org/repos/asf/sis.git.
from 07e2985 SQL/MM : cleaning code
new fb76a3d SQL/MM : cleaning code
new d7ae596 SQL/MM : cleaning code
new 1dac055 SQL/MM : cleaning code
The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../sis/internal/filter/FilterGeometryUtils.java | 2 -
...d.java => AbstractAccessorSpatialFunction.java} | 9 +-
...hod.java => AbstractBinarySpatialFunction.java} | 8 +-
.../sqlmm/{todo => }/AbstractGeomConstructor.java | 9 +-
.../filter/sqlmm/AbstractSpatialFunction.java | 113 ++++++++++++
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 192 ++++++++++++++++++++-
.../{todo/Surface_ST_Area.java => ST_Area.java} | 14 +-
.../filter/sqlmm/{todo => }/ST_AsBinary.java | 16 +-
.../GeomColl_ST_GeometryN.java => ST_AsGML.java} | 37 ++--
.../filter/sqlmm/{todo => }/ST_AsText.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Boundary.java | 16 +-
.../sis/internal/filter/sqlmm/ST_Buffer.java | 9 +
.../sis/internal/filter/sqlmm/ST_Centroid.java | 12 ++
.../filter/sqlmm/{todo => }/ST_Contains.java | 12 +-
.../filter/sqlmm/{todo => }/ST_ConvexHull.java | 16 +-
.../filter/sqlmm/{todo => }/ST_CoordDim.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Crosses.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Difference.java | 16 +-
.../filter/sqlmm/{todo => }/ST_Dimension.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Disjoint.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Distance.java | 12 +-
.../Curve_ST_EndPoint.java => ST_EndPoint.java} | 17 +-
.../filter/sqlmm/{todo => }/ST_Equals.java | 12 +-
...ST_ExplicitPoint.java => ST_ExplicitPoint.java} | 14 +-
...n_ST_ExteriorRing.java => ST_ExteriorRing.java} | 18 +-
.../filter/sqlmm/{todo => }/ST_GeomCollection.java | 9 +-
...eomColl_ST_GeometryN.java => ST_GeometryN.java} | 18 +-
.../filter/sqlmm/{todo => }/ST_GeometryType.java | 16 +-
...ST_InteriorRingN.java => ST_InteriorRingN.java} | 18 +-
.../filter/sqlmm/{todo => }/ST_Intersection.java | 16 +-
.../filter/sqlmm/{todo => }/ST_Intersects.java | 15 +-
.../internal/filter/sqlmm/{todo => }/ST_Is3D.java | 15 +-
.../Curve_ST_IsClosed.java => ST_IsClosed.java} | 14 +-
.../filter/sqlmm/{todo => }/ST_IsEmpty.java | 12 +-
.../{todo/Curve_ST_IsRing.java => ST_IsRing.java} | 14 +-
.../filter/sqlmm/{todo => }/ST_IsSimple.java | 12 +-
.../filter/sqlmm/{todo => }/ST_IsValid.java | 12 +-
.../{todo/Curve_ST_Length.java => ST_Length.java} | 14 +-
.../sis/internal/filter/sqlmm/ST_LineString.java | 3 +-
.../sqlmm/{todo => }/ST_MultiLineString.java | 5 +-
.../filter/sqlmm/{todo => }/ST_MultiPoint.java | 5 +-
.../filter/sqlmm/{todo => }/ST_MultiPolygon.java | 5 +-
...ST_NumGeometries.java => ST_NumGeometries.java} | 14 +-
...InteriorRings.java => ST_NumInteriorRings.java} | 14 +-
.../Line_ST_NumPoints.java => ST_NumPoints.java} | 14 +-
.../filter/sqlmm/{todo => }/ST_Overlaps.java | 12 +-
...Surface_ST_Perimeter.java => ST_Perimeter.java} | 14 +-
.../apache/sis/internal/filter/sqlmm/ST_Point.java | 3 +-
.../{todo/Line_ST_PointN.java => ST_PointN.java} | 20 ++-
..._PointOnSurface.java => ST_PointOnSurface.java} | 19 +-
.../filter/sqlmm/{todo => }/ST_Polygon.java | 12 +-
.../filter/sqlmm/{todo => }/ST_Relate.java | 12 +-
.../internal/filter/sqlmm/{todo => }/ST_SRID.java | 12 +-
...Curve_ST_StartPoint.java => ST_StartPoint.java} | 17 +-
.../filter/sqlmm/{todo => }/ST_SymDifference.java | 16 +-
.../filter/sqlmm/{todo => }/ST_Touches.java | 12 +-
.../sis/internal/filter/sqlmm/ST_Transform.java | 8 +
.../internal/filter/sqlmm/{todo => }/ST_Union.java | 16 +-
.../filter/sqlmm/{todo => }/ST_Within.java | 12 +-
.../sqlmm/{todo/Point_ST_X.java => ST_X.java} | 14 +-
.../filter/sqlmm/{todo => }/ST_XFromBinary.java | 133 +++++---------
.../filter/sqlmm/{todo => }/ST_XFromGML.java | 103 ++++-------
.../filter/sqlmm/{todo => }/ST_XFromText.java | 134 +++++---------
.../sqlmm/{todo/Point_ST_Y.java => ST_Y.java} | 14 +-
.../sqlmm/{todo/Point_ST_Z.java => ST_Z.java} | 14 +-
.../filter/sqlmm/todo/AbstractSpatialFunction.java | 51 ------
.../filter/sqlmm/todo/AbstractSpatialMethod.java | 90 ----------
.../sis/internal/filter/sqlmm/todo/ST_AsGML.java | 83 ---------
.../sis/internal/filter/sqlmm/todo/ST_Buffer.java | 70 --------
.../internal/filter/sqlmm/todo/ST_Envelope.java | 58 -------
.../internal/filter/sqlmm/todo/ST_LineString.java | 4 +-
.../sis/internal/filter/sqlmm/todo/ST_Point.java | 19 +-
.../internal/filter/sqlmm/todo/ST_ToGeomColl.java | 11 +-
.../filter/sqlmm/todo/ST_ToLineString.java | 11 +-
.../internal/filter/sqlmm/todo/ST_ToMultiLine.java | 11 +-
.../filter/sqlmm/todo/ST_ToMultiPoint.java | 11 +-
.../filter/sqlmm/todo/ST_ToMultiPolygon.java | 11 +-
.../sis/internal/filter/sqlmm/todo/ST_ToPoint.java | 11 +-
.../internal/filter/sqlmm/todo/ST_ToPolygon.java | 11 +-
.../internal/filter/sqlmm/todo/ST_Transform.java | 80 ---------
.../filter/sqlmm/todo/SpatialFunctionFactory.java | 123 -------------
.../filter/sqlmm/todo/SpatialMethodFactory.java | 150 ----------------
.../filter/sqlmm/todo/Surface_ST_Centroid.java | 60 -------
83 files changed, 1109 insertions(+), 1212 deletions(-)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/AbstractAccessorSpatialMethod.java => AbstractAccessorSpatialFunction.java} (87%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/AbstractBinarySpatialMethod.java => AbstractBinarySpatialFunction.java} (89%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/AbstractGeomConstructor.java (84%)
create mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractSpatialFunction.java
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Surface_ST_Area.java => ST_Area.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_AsBinary.java (75%)
copy core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/GeomColl_ST_GeometryN.java => ST_AsGML.java} (65%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_AsText.java (79%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Boundary.java (74%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Contains.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_ConvexHull.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_CoordDim.java (79%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Crosses.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Difference.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Dimension.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Disjoint.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Distance.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Curve_ST_EndPoint.java => ST_EndPoint.java} (73%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Equals.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Point_ST_ExplicitPoint.java => ST_ExplicitPoint.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/CurvePolygon_ST_ExteriorRing.java => ST_ExteriorRing.java} (72%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_GeomCollection.java (87%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/GeomColl_ST_GeometryN.java => ST_GeometryN.java} (74%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_GeometryType.java (82%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/CurvePolygon_ST_InteriorRingN.java => ST_InteriorRingN.java} (73%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Intersection.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Intersects.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Is3D.java (78%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Curve_ST_IsClosed.java => ST_IsClosed.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_IsEmpty.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Curve_ST_IsRing.java => ST_IsRing.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_IsSimple.java (78%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_IsValid.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Curve_ST_Length.java => ST_Length.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_MultiLineString.java (91%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_MultiPoint.java (92%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_MultiPolygon.java (92%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/GeomColl_ST_NumGeometries.java => ST_NumGeometries.java} (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/CurvePolygon_ST_NumInteriorRings.java => ST_NumInteriorRings.java} (76%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Line_ST_NumPoints.java => ST_NumPoints.java} (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Overlaps.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Surface_ST_Perimeter.java => ST_Perimeter.java} (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Line_ST_PointN.java => ST_PointN.java} (74%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Surface_ST_PointOnSurface.java => ST_PointOnSurface.java} (72%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Polygon.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Relate.java (79%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_SRID.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Curve_ST_StartPoint.java => ST_StartPoint.java} (74%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_SymDifference.java (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Touches.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Union.java (74%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_Within.java (77%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Point_ST_X.java => ST_X.java} (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_XFromBinary.java (69%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_XFromGML.java (72%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo => }/ST_XFromText.java (70%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Point_ST_Y.java => ST_Y.java} (75%)
rename core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/{todo/Point_ST_Z.java => ST_Z.java} (75%)
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialMethod.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Transform.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialFunctionFactory.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialMethodFactory.java
delete mode 100644 core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
[sis] 02/03: SQL/MM : cleaning code
Posted by js...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jsorel pushed a commit to branch feat/sqlmm
in repository https://gitbox.apache.org/repos/asf/sis.git
commit d7ae59674197ad44268e11092aef924baad46062
Author: jsorel <jo...@geomatys.com>
AuthorDate: Wed Nov 27 11:20:44 2019 +0100
SQL/MM : cleaning code
---
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 244 ++++++++++-----------
.../sis/internal/filter/sqlmm/ST_LineString.java | 3 +-
.../filter/sqlmm/todo/AbstractSpatialFunction.java | 7 +-
.../todo/{Surface_ST_Area.java => ST_Area.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_AsBinary.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_AsGML.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_AsText.java | 8 +
.../internal/filter/sqlmm/todo/ST_Boundary.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Buffer.java | 8 +
.../{Surface_ST_Centroid.java => ST_Centroid.java} | 13 +-
.../internal/filter/sqlmm/todo/ST_Contains.java | 8 +
.../internal/filter/sqlmm/todo/ST_ConvexHull.java | 8 +
.../internal/filter/sqlmm/todo/ST_CoordDim.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Crosses.java | 8 +
.../internal/filter/sqlmm/todo/ST_Difference.java | 8 +
.../internal/filter/sqlmm/todo/ST_Dimension.java | 8 +
.../internal/filter/sqlmm/todo/ST_Disjoint.java | 8 +
.../internal/filter/sqlmm/todo/ST_Distance.java | 8 +
.../{Curve_ST_EndPoint.java => ST_EndPoint.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_Envelope.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Equals.java | 8 +
...ST_ExplicitPoint.java => ST_ExplicitPoint.java} | 12 +-
...n_ST_ExteriorRing.java => ST_ExteriorRing.java} | 12 +-
.../filter/sqlmm/todo/ST_GeomCollection.java | 14 +-
...eomColl_ST_GeometryN.java => ST_GeometryN.java} | 12 +-
.../filter/sqlmm/todo/ST_GeometryType.java | 8 +
...ST_InteriorRingN.java => ST_InteriorRingN.java} | 12 +-
.../filter/sqlmm/todo/ST_Intersection.java | 8 +
.../internal/filter/sqlmm/todo/ST_Intersects.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Is3D.java | 8 +
.../{Curve_ST_IsClosed.java => ST_IsClosed.java} | 12 +-
.../sis/internal/filter/sqlmm/todo/ST_IsEmpty.java | 8 +
.../todo/{Curve_ST_IsRing.java => ST_IsRing.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_IsSimple.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_IsValid.java | 8 +
.../todo/{Curve_ST_Length.java => ST_Length.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_LineString.java | 8 +
.../filter/sqlmm/todo/ST_MultiLineString.java | 8 +
.../internal/filter/sqlmm/todo/ST_MultiPoint.java | 8 +
.../filter/sqlmm/todo/ST_MultiPolygon.java | 8 +
...ST_NumGeometries.java => ST_NumGeometries.java} | 12 +-
...InteriorRings.java => ST_NumInteriorRings.java} | 12 +-
.../{Line_ST_NumPoints.java => ST_NumPoints.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_Overlaps.java | 8 +
...Surface_ST_Perimeter.java => ST_Perimeter.java} | 12 +-
.../sis/internal/filter/sqlmm/todo/ST_Point.java | 11 +-
.../todo/{Line_ST_PointN.java => ST_PointN.java} | 12 +-
..._PointOnSurface.java => ST_PointOnSurface.java} | 13 +-
.../sis/internal/filter/sqlmm/todo/ST_Polygon.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Relate.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_SRID.java | 8 +
...Curve_ST_StartPoint.java => ST_StartPoint.java} | 12 +-
.../filter/sqlmm/todo/ST_SymDifference.java | 8 +
.../internal/filter/sqlmm/todo/ST_ToGeomColl.java | 8 +
.../filter/sqlmm/todo/ST_ToLineString.java | 8 +
.../internal/filter/sqlmm/todo/ST_ToMultiLine.java | 8 +
.../filter/sqlmm/todo/ST_ToMultiPoint.java | 8 +
.../filter/sqlmm/todo/ST_ToMultiPolygon.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_ToPoint.java | 8 +
.../internal/filter/sqlmm/todo/ST_ToPolygon.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Touches.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Union.java | 8 +
.../sis/internal/filter/sqlmm/todo/ST_Within.java | 8 +
.../sqlmm/todo/{Point_ST_X.java => ST_X.java} | 12 +-
.../internal/filter/sqlmm/todo/ST_XFromBinary.java | 39 ++--
.../internal/filter/sqlmm/todo/ST_XFromGML.java | 22 +-
.../internal/filter/sqlmm/todo/ST_XFromText.java | 39 ++--
.../sqlmm/todo/{Point_ST_Y.java => ST_Y.java} | 12 +-
.../sqlmm/todo/{Point_ST_Z.java => ST_Z.java} | 12 +-
69 files changed, 729 insertions(+), 220 deletions(-)
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
index ef9a6d3..bf11527 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
@@ -23,22 +23,22 @@ import org.opengis.filter.expression.Function;
import org.opengis.util.FactoryException;
import org.apache.sis.internal.feature.FunctionRegister;
import org.apache.sis.internal.feature.Resources;
-import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_ExteriorRing;
-import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_InteriorRingN;
-import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_NumInteriorRings;
-import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_EndPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_IsClosed;
-import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_IsRing;
-import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_Length;
-import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_StartPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.GeomColl_ST_GeometryN;
-import org.apache.sis.internal.filter.sqlmm.todo.GeomColl_ST_NumGeometries;
-import org.apache.sis.internal.filter.sqlmm.todo.Line_ST_NumPoints;
-import org.apache.sis.internal.filter.sqlmm.todo.Line_ST_PointN;
-import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_ExplicitPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_X;
-import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_Y;
-import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_Z;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ExteriorRing;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_InteriorRingN;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_NumInteriorRings;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_EndPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_IsClosed;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_IsRing;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Length;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_StartPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_GeometryN;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_NumGeometries;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_NumPoints;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_PointN;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ExplicitPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_X;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Y;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Z;
import org.apache.sis.internal.filter.sqlmm.todo.ST_AsBinary;
import org.apache.sis.internal.filter.sqlmm.todo.ST_AsGML;
import org.apache.sis.internal.filter.sqlmm.todo.ST_AsText;
@@ -81,10 +81,10 @@ import org.apache.sis.internal.filter.sqlmm.todo.ST_Within;
import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromBinary;
import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromGML;
import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromText;
-import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Area;
-import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Centroid;
-import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Perimeter;
-import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_PointOnSurface;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Area;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Centroid;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Perimeter;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_PointOnSurface;
import org.apache.sis.util.ArgumentChecks;
@@ -122,22 +122,7 @@ public final class SQLMM implements FunctionRegister {
@Override
public Collection<String> getNames() {
return Arrays.asList(
- CurvePolygon_ST_ExteriorRing.NAME,
- CurvePolygon_ST_InteriorRingN.NAME,
- CurvePolygon_ST_NumInteriorRings.NAME,
- Curve_ST_EndPoint.NAME,
- Curve_ST_IsClosed.NAME,
- Curve_ST_IsRing.NAME,
- Curve_ST_Length.NAME,
- Curve_ST_StartPoint.NAME,
- GeomColl_ST_GeometryN.NAME,
- GeomColl_ST_NumGeometries.NAME,
- Line_ST_NumPoints.NAME,
- Line_ST_PointN.NAME,
- Point_ST_ExplicitPoint.NAME,
- Point_ST_X.NAME,
- Point_ST_Y.NAME,
- Point_ST_Z.NAME,
+ ST_Area.NAME,
ST_AsBinary.NAME,
ST_AsGML.NAME,
ST_AsText.NAME,
@@ -152,27 +137,42 @@ public final class SQLMM implements FunctionRegister {
ST_Dimension.NAME,
ST_Disjoint.NAME,
ST_Distance.NAME,
+ ST_EndPoint.NAME,
ST_Envelope.NAME,
ST_Equals.NAME,
+ ST_ExplicitPoint.NAME,
+ ST_ExteriorRing.NAME,
ST_GeomCollection.NAME,
+ ST_GeometryN.NAME,
ST_GeometryType.NAME,
+ ST_InteriorRingN.NAME,
ST_Intersection.NAME,
ST_Intersects.NAME,
ST_Is3D.NAME,
+ ST_IsClosed.NAME,
ST_IsEmpty.NAME,
+ ST_IsRing.NAME,
ST_IsSimple.NAME,
ST_IsValid.NAME,
+ ST_Length.NAME,
ST_LineString.NAME,
ST_MultiLineString.NAME,
ST_MultiPoint.NAME,
ST_MultiPolygon.NAME,
+ ST_NumGeometries.NAME,
+ ST_NumInteriorRings.NAME,
+ ST_NumPoints.NAME,
ST_Overlaps.NAME,
+ ST_Perimeter.NAME,
ST_Point.NAME,
+ ST_PointN.NAME,
+ ST_PointOnSurface.NAME,
ST_Polygon.NAME,
ST_Relate.NAME,
ST_Simplify.NAME,
ST_SimplifyPreserveTopology.NAME,
ST_SRID.NAME,
+ ST_StartPoint.NAME,
ST_SymDifference.NAME,
ST_ToGeomColl.NAME,
ST_ToLineString.NAME,
@@ -185,6 +185,7 @@ public final class SQLMM implements FunctionRegister {
ST_Transform.NAME,
ST_Union.NAME,
ST_Within.NAME,
+ ST_X.NAME,
ST_XFromBinary.BdMPoly.NAME,
ST_XFromBinary.BdPoly.NAME,
ST_XFromBinary.GeomColl.NAME,
@@ -213,10 +214,8 @@ public final class SQLMM implements FunctionRegister {
ST_XFromText.MPoly.NAME,
ST_XFromText.Point.NAME,
ST_XFromText.Poly.NAME,
- Surface_ST_Area.NAME,
- Surface_ST_Centroid.NAME,
- Surface_ST_Perimeter.NAME,
- Surface_ST_PointOnSurface.NAME
+ ST_Y.NAME,
+ ST_Z.NAME
);
}
@@ -238,101 +237,100 @@ public final class SQLMM implements FunctionRegister {
}
try {
switch (name) {
- case CurvePolygon_ST_ExteriorRing.NAME: return new CurvePolygon_ST_ExteriorRing(parameters);
- case CurvePolygon_ST_InteriorRingN.NAME: return new CurvePolygon_ST_InteriorRingN(parameters);
- case CurvePolygon_ST_NumInteriorRings.NAME: return new CurvePolygon_ST_NumInteriorRings(parameters);
- case Curve_ST_EndPoint.NAME: return new Curve_ST_EndPoint(parameters);
- case Curve_ST_IsClosed.NAME: return new Curve_ST_IsClosed(parameters);
- case Curve_ST_IsRing.NAME: return new Curve_ST_IsRing(parameters);
- case Curve_ST_Length.NAME: return new Curve_ST_Length(parameters);
- case Curve_ST_StartPoint.NAME: return new Curve_ST_StartPoint(parameters);
- case GeomColl_ST_GeometryN.NAME: return new GeomColl_ST_GeometryN(parameters);
- case GeomColl_ST_NumGeometries.NAME: return new GeomColl_ST_NumGeometries(parameters);
- case Line_ST_NumPoints.NAME: return new Line_ST_NumPoints(parameters);
- case Line_ST_PointN.NAME: return new Line_ST_PointN(parameters);
- case Point_ST_ExplicitPoint.NAME: return new Point_ST_ExplicitPoint(parameters);
- case Point_ST_X.NAME: return new Point_ST_X(parameters);
- case Point_ST_Y.NAME: return new Point_ST_Y(parameters);
- case Point_ST_Z.NAME: return new Point_ST_Z(parameters);
- case ST_AsBinary.NAME: return new ST_AsBinary(parameters);
- case ST_AsGML.NAME: return new ST_AsGML(parameters);
+ case ST_Area.NAME: return new ST_Area(parameters);
+ case ST_AsBinary.NAME: return new ST_AsBinary(parameters);
+ case ST_AsGML.NAME: return new ST_AsGML(parameters);
case ST_AsText.NAME: return new ST_AsText(parameters);
- case ST_Boundary.NAME: return new ST_Boundary(parameters);
+ case ST_Boundary.NAME: return new ST_Boundary(parameters);
case ST_Buffer.NAME: return new ST_Buffer(parameters);
case ST_Centroid.NAME: return new ST_Centroid(parameters);
- case ST_Contains.NAME: return new ST_Contains(parameters);
- case ST_ConvexHull.NAME: return new ST_ConvexHull(parameters);
- case ST_CoordDim.NAME: return new ST_CoordDim(parameters);
- case ST_Crosses.NAME: return new ST_Crosses(parameters);
- case ST_Difference.NAME: return new ST_Difference(parameters);
- case ST_Dimension.NAME: return new ST_Dimension(parameters);
- case ST_Disjoint.NAME: return new ST_Disjoint(parameters);
- case ST_Distance.NAME: return new ST_Distance(parameters);
+ case ST_Contains.NAME: return new ST_Contains(parameters);
+ case ST_ConvexHull.NAME: return new ST_ConvexHull(parameters);
+ case ST_CoordDim.NAME: return new ST_CoordDim(parameters);
+ case ST_Crosses.NAME: return new ST_Crosses(parameters);
+ case ST_Difference.NAME: return new ST_Difference(parameters);
+ case ST_Dimension.NAME: return new ST_Dimension(parameters);
+ case ST_Disjoint.NAME: return new ST_Disjoint(parameters);
+ case ST_Distance.NAME: return new ST_Distance(parameters);
+ case ST_EndPoint.NAME: return new ST_EndPoint(parameters);
case ST_Envelope.NAME: return new ST_Envelope(parameters);
case ST_Equals.NAME: return new ST_Equals(parameters);
- case ST_GeomCollection.NAME: return new ST_GeomCollection(parameters);
- case ST_GeometryType.NAME: return new ST_GeometryType(parameters);
- case ST_Intersection.NAME: return new ST_Intersection(parameters);
- case ST_Intersects.NAME: return new ST_Intersects(parameters);
- case ST_Is3D.NAME: return new ST_Is3D(parameters);
- case ST_IsEmpty.NAME: return new ST_IsEmpty(parameters);
- case ST_IsSimple.NAME: return new ST_IsSimple(parameters);
- case ST_IsValid.NAME: return new ST_IsValid(parameters);
+ case ST_ExplicitPoint.NAME: return new ST_ExplicitPoint(parameters);
+ case ST_ExteriorRing.NAME: return new ST_ExteriorRing(parameters);
+ case ST_GeomCollection.NAME: return new ST_GeomCollection(parameters);
+ case ST_GeometryN.NAME: return new ST_GeometryN(parameters);
+ case ST_GeometryType.NAME: return new ST_GeometryType(parameters);
+ case ST_InteriorRingN.NAME: return new ST_InteriorRingN(parameters);
+ case ST_Intersection.NAME: return new ST_Intersection(parameters);
+ case ST_Intersects.NAME: return new ST_Intersects(parameters);
+ case ST_Is3D.NAME: return new ST_Is3D(parameters);
+ case ST_IsClosed.NAME: return new ST_IsClosed(parameters);
+ case ST_IsEmpty.NAME: return new ST_IsEmpty(parameters);
+ case ST_IsRing.NAME: return new ST_IsRing(parameters);
+ case ST_IsSimple.NAME: return new ST_IsSimple(parameters);
+ case ST_IsValid.NAME: return new ST_IsValid(parameters);
+ case ST_Length.NAME: return new ST_Length(parameters);
case ST_LineString.NAME: return new ST_LineString(parameters);
- case ST_MultiLineString.NAME: return new ST_MultiLineString(parameters);
- case ST_MultiPoint.NAME: return new ST_MultiPoint(parameters);
- case ST_MultiPolygon.NAME: return new ST_MultiPolygon(parameters);
- case ST_Overlaps.NAME: return new ST_Overlaps(parameters);
+ case ST_MultiLineString.NAME: return new ST_MultiLineString(parameters);
+ case ST_MultiPoint.NAME: return new ST_MultiPoint(parameters);
+ case ST_MultiPolygon.NAME: return new ST_MultiPolygon(parameters);
+ case ST_NumGeometries.NAME: return new ST_NumGeometries(parameters);
+ case ST_NumInteriorRings.NAME: return new ST_NumInteriorRings(parameters);
+ case ST_NumPoints.NAME: return new ST_NumPoints(parameters);
+ case ST_Overlaps.NAME: return new ST_Overlaps(parameters);
+ case ST_Perimeter.NAME: return new ST_Perimeter(parameters);
case ST_Point.NAME: return new ST_Point(parameters);
- case ST_Polygon.NAME: return new ST_Polygon(parameters);
+ case ST_PointN.NAME: return new ST_PointN(parameters);
+ case ST_PointOnSurface.NAME: return new ST_PointOnSurface(parameters);
+ case ST_Polygon.NAME: return new ST_Polygon(parameters);
case ST_Relate.NAME: return new ST_Relate(parameters);
case ST_Simplify.NAME: return new ST_Simplify(parameters);
case ST_SimplifyPreserveTopology.NAME: return new ST_SimplifyPreserveTopology(parameters);
- case ST_SRID.NAME: return new ST_SRID(parameters);
- case ST_SymDifference.NAME: return new ST_SymDifference(parameters);
- case ST_ToGeomColl.NAME: return new ST_ToGeomColl(parameters);
- case ST_ToLineString.NAME: return new ST_ToLineString(parameters);
- case ST_ToMultiLine.NAME: return new ST_ToMultiLine(parameters);
- case ST_ToMultiPoint.NAME: return new ST_ToMultiPoint(parameters);
- case ST_ToMultiPolygon.NAME: return new ST_ToMultiPolygon(parameters);
- case ST_ToPoint.NAME: return new ST_ToPoint(parameters);
- case ST_ToPolygon.NAME: return new ST_ToPolygon(parameters);
- case ST_Touches.NAME: return new ST_Touches(parameters);
+ case ST_SRID.NAME: return new ST_SRID(parameters);
+ case ST_StartPoint.NAME: return new ST_StartPoint(parameters);
+ case ST_SymDifference.NAME: return new ST_SymDifference(parameters);
+ case ST_ToGeomColl.NAME: return new ST_ToGeomColl(parameters);
+ case ST_ToLineString.NAME: return new ST_ToLineString(parameters);
+ case ST_ToMultiLine.NAME: return new ST_ToMultiLine(parameters);
+ case ST_ToMultiPoint.NAME: return new ST_ToMultiPoint(parameters);
+ case ST_ToMultiPolygon.NAME: return new ST_ToMultiPolygon(parameters);
+ case ST_ToPoint.NAME: return new ST_ToPoint(parameters);
+ case ST_ToPolygon.NAME: return new ST_ToPolygon(parameters);
+ case ST_Touches.NAME: return new ST_Touches(parameters);
case ST_Transform.NAME: return new ST_Transform(parameters);
- case ST_Union.NAME: return new ST_Union(parameters);
+ case ST_Union.NAME: return new ST_Union(parameters);
case ST_Within.NAME: return new ST_Within(parameters);
- case ST_XFromBinary.BdMPoly.NAME: return new ST_XFromBinary.BdMPoly(parameters);
- case ST_XFromBinary.BdPoly.NAME: return new ST_XFromBinary.BdPoly(parameters);
- case ST_XFromBinary.GeomColl.NAME: return new ST_XFromBinary.GeomColl(parameters);
- case ST_XFromBinary.Geom.NAME: return new ST_XFromBinary.Geom(parameters);
- case ST_XFromBinary.Line.NAME: return new ST_XFromBinary.Line(parameters);
- case ST_XFromBinary.MLine.NAME: return new ST_XFromBinary.MLine(parameters);
- case ST_XFromBinary.MPoint.NAME: return new ST_XFromBinary.MPoint(parameters);
- case ST_XFromBinary.MPoly.NAME: return new ST_XFromBinary.MPoly(parameters);
- case ST_XFromBinary.Point.NAME: return new ST_XFromBinary.Point(parameters);
- case ST_XFromBinary.Poly.NAME: return new ST_XFromBinary.Poly(parameters);
- case ST_XFromGML.GeomColl.NAME: return new ST_XFromGML.GeomColl(parameters);
- case ST_XFromGML.Geom.NAME: return new ST_XFromGML.Geom(parameters);
- case ST_XFromGML.Line.NAME: return new ST_XFromGML.Line(parameters);
- case ST_XFromGML.MLine.NAME: return new ST_XFromGML.MLine(parameters);
- case ST_XFromGML.MPoint.NAME: return new ST_XFromGML.MPoint(parameters);
- case ST_XFromGML.MPoly.NAME: return new ST_XFromGML.MPoly(parameters);
- case ST_XFromGML.Point.NAME: return new ST_XFromGML.Point(parameters);
- case ST_XFromGML.Poly.NAME: return new ST_XFromGML.Poly(parameters);
- case ST_XFromText.BdMPoly.NAME: return new ST_XFromText.BdMPoly(parameters);
- case ST_XFromText.BdPoly.NAME: return new ST_XFromText.BdPoly(parameters);
- case ST_XFromText.GeomColl.NAME: return new ST_XFromText.GeomColl(parameters);
- case ST_XFromText.Geom.NAME: return new ST_XFromText.Geom(parameters);
- case ST_XFromText.Line.NAME: return new ST_XFromText.Line(parameters);
- case ST_XFromText.MLine.NAME: return new ST_XFromText.MLine(parameters);
- case ST_XFromText.MPoint.NAME: return new ST_XFromText.MPoint(parameters);
- case ST_XFromText.MPoly.NAME: return new ST_XFromText.MPoly(parameters);
- case ST_XFromText.Point.NAME: return new ST_XFromText.Point(parameters);
- case ST_XFromText.Poly.NAME: return new ST_XFromText.Poly(parameters);
- case Surface_ST_Area.NAME: return new Surface_ST_Area(parameters);
- //case Surface_ST_Centroid.NAME: return new Surface_ST_Centroid(parameters);
- case Surface_ST_Perimeter.NAME: return new Surface_ST_Perimeter(parameters);
- case Surface_ST_PointOnSurface.NAME: return new Surface_ST_PointOnSurface(parameters);
+ case ST_X.NAME: return new ST_X(parameters);
+ case ST_XFromBinary.BdMPoly.NAME: return new ST_XFromBinary.BdMPoly(parameters);
+ case ST_XFromBinary.BdPoly.NAME: return new ST_XFromBinary.BdPoly(parameters);
+ case ST_XFromBinary.GeomColl.NAME: return new ST_XFromBinary.GeomColl(parameters);
+ case ST_XFromBinary.Geom.NAME: return new ST_XFromBinary.Geom(parameters);
+ case ST_XFromBinary.Line.NAME: return new ST_XFromBinary.Line(parameters);
+ case ST_XFromBinary.MLine.NAME: return new ST_XFromBinary.MLine(parameters);
+ case ST_XFromBinary.MPoint.NAME: return new ST_XFromBinary.MPoint(parameters);
+ case ST_XFromBinary.MPoly.NAME: return new ST_XFromBinary.MPoly(parameters);
+ case ST_XFromBinary.Point.NAME: return new ST_XFromBinary.Point(parameters);
+ case ST_XFromBinary.Poly.NAME: return new ST_XFromBinary.Poly(parameters);
+ case ST_XFromGML.GeomColl.NAME: return new ST_XFromGML.GeomColl(parameters);
+ case ST_XFromGML.Geom.NAME: return new ST_XFromGML.Geom(parameters);
+ case ST_XFromGML.Line.NAME: return new ST_XFromGML.Line(parameters);
+ case ST_XFromGML.MLine.NAME: return new ST_XFromGML.MLine(parameters);
+ case ST_XFromGML.MPoint.NAME: return new ST_XFromGML.MPoint(parameters);
+ case ST_XFromGML.MPoly.NAME: return new ST_XFromGML.MPoly(parameters);
+ case ST_XFromGML.Point.NAME: return new ST_XFromGML.Point(parameters);
+ case ST_XFromGML.Poly.NAME: return new ST_XFromGML.Poly(parameters);
+ case ST_XFromText.BdMPoly.NAME: return new ST_XFromText.BdMPoly(parameters);
+ case ST_XFromText.BdPoly.NAME: return new ST_XFromText.BdPoly(parameters);
+ case ST_XFromText.GeomColl.NAME: return new ST_XFromText.GeomColl(parameters);
+ case ST_XFromText.Geom.NAME: return new ST_XFromText.Geom(parameters);
+ case ST_XFromText.Line.NAME: return new ST_XFromText.Line(parameters);
+ case ST_XFromText.MLine.NAME: return new ST_XFromText.MLine(parameters);
+ case ST_XFromText.MPoint.NAME: return new ST_XFromText.MPoint(parameters);
+ case ST_XFromText.MPoly.NAME: return new ST_XFromText.MPoly(parameters);
+ case ST_XFromText.Point.NAME: return new ST_XFromText.Point(parameters);
+ case ST_XFromText.Poly.NAME: return new ST_XFromText.Poly(parameters);
+ case ST_Y.NAME: return new ST_Y(parameters);
+ case ST_Z.NAME: return new ST_Z(parameters);
default: throw new IllegalArgumentException(Resources.format(Resources.Keys.UnknownFunction_1, name));
}
} catch (FactoryException e) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_LineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_LineString.java
index c05ab4b..571eb60 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_LineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_LineString.java
@@ -26,6 +26,7 @@ import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.NamedFunction;
import org.apache.sis.internal.feature.FeatureExpression;
+import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.apache.sis.referencing.CRS;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.LineString;
@@ -116,7 +117,7 @@ final class ST_LineString extends NamedFunction implements FeatureExpression {
}
}
- final LineString geometry = SQLMM.GF.createLineString(coords.toArray(new Coordinate[coords.size()]));
+ final LineString geometry = FilterGeometryUtils.GF.createLineString(coords.toArray(new Coordinate[coords.size()]));
geometry.setUserData(crs);
return geometry;
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
index 00c93cd..a33913c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
@@ -16,9 +16,8 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
-import java.util.logging.Logger;
+import org.apache.sis.internal.feature.FeatureExpression;
import org.apache.sis.internal.filter.NamedFunction;
-import org.apache.sis.util.logging.Logging;
import org.opengis.filter.expression.Expression;
/**
@@ -28,9 +27,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public abstract class AbstractSpatialFunction extends NamedFunction {
-
- protected static final Logger LOGGER = Logging.getLogger(AbstractSpatialFunction.class);
+public abstract class AbstractSpatialFunction extends NamedFunction implements FeatureExpression {
public AbstractSpatialFunction(Expression[] parameters){
super(parameters);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java
index a02a6b0..ddf3463 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Area extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_Area extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Area";
- public Surface_ST_Area(Expression[] parameters) {
+ public ST_Area(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class Surface_ST_Area extends AbstractAccessorSpatialFunction<Geome
return geom.getArea();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
index d09cc57..a8801d2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
@@ -19,7 +19,10 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.WKBWriter;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_AsBinary extends AbstractAccessorSpatialFunction<Geometry>
return writer.write(geom);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(byte[].class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
index cfd8ff8..66b267d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -53,4 +56,9 @@ public final class ST_AsGML extends AbstractAccessorSpatialFunction<Geometry> {
throw new ParseException("Not implemented", 0);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(String.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
index d689445..e839d1b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
@@ -19,7 +19,10 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.WKTWriter;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_AsText extends AbstractAccessorSpatialFunction<Geometry> {
return writer.write(geom);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(String.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
index 3415499..54501a2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_Boundary extends AbstractAccessorSpatialFunction<Geometry>
return bound;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
index f88775f..66c7a3d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -67,4 +70,9 @@ public final class ST_Buffer extends AbstractAccessorSpatialFunction<Geometry> {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java
index 4ad77b0..37900b9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java
@@ -18,6 +18,10 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.locationtech.jts.geom.Point;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -32,11 +36,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Centroid extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_Centroid extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Centroid";
- public Surface_ST_Centroid(Expression[] parameters) {
+ public ST_Centroid(Expression[] parameters) {
super(parameters);
}
@@ -57,4 +61,9 @@ public final class Surface_ST_Centroid extends AbstractAccessorSpatialFunction<G
return centroid;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
index 9aad95a..9f83dea 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Contains extends AbstractBinarySpatialFunction {
return left.contains(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
index 8ceb191..baa32da 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ConvexHull extends AbstractAccessorSpatialFunction<Geometr
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
index 14bfa4c..39ecf9b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -57,4 +60,9 @@ public final class ST_CoordDim extends AbstractAccessorSpatialFunction<Geometry>
return null;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
index 062533a..957b709 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Crosses extends AbstractBinarySpatialFunction {
return left.crosses(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
index 2c391bd..f1d0c9c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -50,4 +53,9 @@ public final class ST_Difference extends AbstractBinarySpatialFunction {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
index 731ee2c..f197595 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -52,4 +55,9 @@ public final class ST_Dimension extends AbstractAccessorSpatialFunction<Geometry
return geom.getDimension();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
index d0f99ab..ec6116e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Disjoint extends AbstractBinarySpatialFunction {
return left.disjoint(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
index 2b917b9..5ab2c7c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Distance extends AbstractBinarySpatialFunction {
return d;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java
index 29a20c4..fe176b1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_EndPoint extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_EndPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_EndPoint";
- public Curve_ST_EndPoint(Expression[] parameters) {
+ public ST_EndPoint(Expression[] parameters) {
super(parameters);
}
@@ -55,4 +58,9 @@ public final class Curve_ST_EndPoint extends AbstractAccessorSpatialFunction<Lin
return pt;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
index 25dae29..e1aa429 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_Envelope extends AbstractAccessorSpatialFunction<Geometry>
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
index 46d491c..842fbd1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Equals extends AbstractBinarySpatialFunction {
return left.equals(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java
index 8188c60..e45e474 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java
@@ -21,6 +21,9 @@ import org.locationtech.jts.geom.Point;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -32,11 +35,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_ExplicitPoint extends AbstractAccessorSpatialFunction<Point> {
+public final class ST_ExplicitPoint extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_ExplicitPoint";
- public Point_ST_ExplicitPoint(Expression[] parameters) {
+ public ST_ExplicitPoint(Expression[] parameters) {
super(parameters);
}
@@ -60,4 +63,9 @@ public final class Point_ST_ExplicitPoint extends AbstractAccessorSpatialFunctio
return values;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setMinimumOccurs(0).setMaximumOccurs(Integer.MAX_VALUE).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java
index 15dd7a4..4dd6631 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,11 +33,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polygon> {
+public final class ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_ExteriorRing";
- public CurvePolygon_ST_ExteriorRing(Expression[] parameters) {
+ public ST_ExteriorRing(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class CurvePolygon_ST_ExteriorRing extends AbstractAccessorSpatialF
ring.setSRID(geom.getSRID());
return ring;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(LineString.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java
index 1a61c87..f5169b9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.GeometryCollection;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -24,14 +27,14 @@ import org.opengis.filter.expression.Expression;
*
* @author Johann Sorel (Geomatys)
* @version 2.0
- * @since 2.0
+ * @since 2.0
* @module
*/
-public final class ST_GeomCollection extends AbstractGeomConstructor{
+public final class ST_GeomCollection extends AbstractGeomConstructor {
public static final String NAME = "ST_GeomCollection";
- public ST_GeomCollection(Expression[] parameters){
+ public ST_GeomCollection(Expression[] parameters) {
super(parameters);
}
@@ -44,4 +47,9 @@ public final class ST_GeomCollection extends AbstractGeomConstructor{
protected Class<GeometryCollection> getExpectedClass() {
return GeometryCollection.class;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(GeometryCollection.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java
similarity index 80%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java
index c2d4410..1705733 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,11 +33,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class GeomColl_ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_GeometryN";
- public GeomColl_ST_GeometryN(Expression[] parameters) {
+ public ST_GeometryN(Expression[] parameters) {
super(parameters);
}
@@ -66,4 +69,9 @@ public final class GeomColl_ST_GeometryN extends AbstractAccessorSpatialFunction
return sub;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
index 663a24a..dceffe1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
@@ -28,6 +28,9 @@ import java.text.ParseException;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Map.Entry;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -79,4 +82,9 @@ public final class ST_GeometryType extends AbstractAccessorSpatialFunction<Geome
return null;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(String.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java
similarity index 79%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java
index c9c5d11..0050168 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,11 +33,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_InteriorRingN extends AbstractAccessorSpatialFunction<Polygon> {
+public final class ST_InteriorRingN extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_InteriorRingN";
- public CurvePolygon_ST_InteriorRingN(Expression[] parameters) {
+ public ST_InteriorRingN(Expression[] parameters) {
super(parameters);
}
@@ -55,4 +58,9 @@ public final class CurvePolygon_ST_InteriorRingN extends AbstractAccessorSpatial
ring.setSRID(geom.getSRID());
return ring;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(LineString.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
index 6dd4c34..5bed5d5 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -50,4 +53,9 @@ public final class ST_Intersection extends AbstractBinarySpatialFunction {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
index c54dcf8..5588af2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -49,4 +52,9 @@ public final class ST_Intersects extends AbstractBinarySpatialFunction {
return left.intersects(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
index 64c6476..6383e54 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -58,4 +61,9 @@ public final class ST_Is3D extends AbstractAccessorSpatialFunction<Geometry> {
return null;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java
index 2b17b72..6cea4a3 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_IsClosed extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_IsClosed extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsClosed";
- public Curve_ST_IsClosed(Expression[] parameters) {
+ public ST_IsClosed(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class Curve_ST_IsClosed extends AbstractAccessorSpatialFunction<Lin
return geom.isClosed();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
index 5cc7308..0cb3ad7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -52,4 +55,9 @@ public final class ST_IsEmpty extends AbstractAccessorSpatialFunction<Geometry>
return geom.isEmpty();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java
index c213ace..509189c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_IsRing extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_IsRing extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsRing";
- public Curve_ST_IsRing(Expression[] parameters) {
+ public ST_IsRing(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class Curve_ST_IsRing extends AbstractAccessorSpatialFunction<LineS
return geom.isRing();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
index 2c711de..1829d26 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -53,4 +56,9 @@ public final class ST_IsSimple extends AbstractAccessorSpatialFunction<Geometry>
return geom.isSimple();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
index c0064e0..66098df 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -52,4 +55,9 @@ public final class ST_IsValid extends AbstractAccessorSpatialFunction<Geometry>
return geom.isValid();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java
index c262ce6..efeb4d8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_Length extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_Length extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Length";
- public Curve_ST_Length(Expression[] parameters) {
+ public ST_Length(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class Curve_ST_Length extends AbstractAccessorSpatialFunction<Geome
return geom.getLength();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
index a4b18c2..cf510e6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.LineString;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -44,4 +47,9 @@ public final class ST_LineString extends AbstractGeomConstructor{
protected Class<LineString> getExpectedClass() {
return LineString.class;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(LineString.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java
index 0667ccb..003b81f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiLineString;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -44,4 +47,9 @@ public final class ST_MultiLineString extends AbstractGeomConstructor{
protected Class<MultiLineString> getExpectedClass() {
return MultiLineString.class;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiLineString.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java
index 609b64c..9ad8f16 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiPoint;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -44,4 +47,9 @@ public final class ST_MultiPoint extends AbstractGeomConstructor{
protected Class<MultiPoint> getExpectedClass() {
return MultiPoint.class;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiPoint.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java
index 3269a74..c42b40e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiPolygon;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -44,4 +47,9 @@ public final class ST_MultiPolygon extends AbstractGeomConstructor{
protected Class<MultiPolygon> getExpectedClass() {
return MultiPolygon.class;
}
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiPolygon.class).setName(NAME);
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java
index 30434ae..19a0f99 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -29,11 +32,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class GeomColl_ST_NumGeometries extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_NumGeometries extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_NumGeometries";
- public GeomColl_ST_NumGeometries(Expression[] parameters) {
+ public ST_NumGeometries(Expression[] parameters) {
super(parameters);
}
@@ -52,4 +55,9 @@ public final class GeomColl_ST_NumGeometries extends AbstractAccessorSpatialFunc
return geom.getNumGeometries();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java
index 3ea83a8..03ff827 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -31,11 +34,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_NumInteriorRings extends AbstractAccessorSpatialFunction<Polygon> {
+public final class ST_NumInteriorRings extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_NumInteriorRings";
- public CurvePolygon_ST_NumInteriorRings(Expression[] parameters) {
+ public ST_NumInteriorRings(Expression[] parameters) {
super(parameters);
}
@@ -54,4 +57,9 @@ public final class CurvePolygon_ST_NumInteriorRings extends AbstractAccessorSpat
return geom.getNumInteriorRing();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java
index 5f51805..1bd3fc0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -29,11 +32,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Line_ST_NumPoints extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_NumPoints extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_NumPoints";
- public Line_ST_NumPoints(Expression[] parameters) {
+ public ST_NumPoints(Expression[] parameters) {
super(parameters);
}
@@ -52,4 +55,9 @@ public final class Line_ST_NumPoints extends AbstractAccessorSpatialFunction<Lin
return geom.getNumPoints();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
index 06bda2d..4e5af3c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Overlaps extends AbstractBinarySpatialFunction {
return left.overlaps(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java
similarity index 79%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java
index 436d8ce..e5b6055 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -32,11 +35,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Perimeter extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_Perimeter extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Perimeter";
- public Surface_ST_Perimeter(Expression[] parameters) {
+ public ST_Perimeter(Expression[] parameters) {
super(parameters);
}
@@ -56,4 +59,9 @@ public final class Surface_ST_Perimeter extends AbstractAccessorSpatialFunction<
return geom.getLength();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
index 1528f16..d999efc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
@@ -20,7 +20,11 @@ import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
import java.math.BigDecimal;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
+import org.locationtech.jts.geom.Point;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -115,7 +119,12 @@ public final class ST_Point extends AbstractSpatialFunction{
throw new OException("Unexpected number of arguments : "+children.size());
}
- return new OSerializableGeometry(geom);
+ return geom;
+ }
+
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java
similarity index 80%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java
index f247113..dcb3cc6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,11 +33,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Line_ST_PointN extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_PointN extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_PointN";
- public Line_ST_PointN(Expression[] parameters) {
+ public ST_PointN(Expression[] parameters) {
super(parameters);
}
@@ -66,4 +69,9 @@ public final class Line_ST_PointN extends AbstractAccessorSpatialFunction<LineSt
return pt;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java
similarity index 78%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java
index 6f021f7..d3984d9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java
@@ -18,6 +18,10 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.locationtech.jts.geom.Point;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -32,11 +36,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geometry> {
+public final class ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_PointOnSurface";
- public Surface_ST_PointOnSurface(Expression[] parameters) {
+ public ST_PointOnSurface(Expression[] parameters) {
super(parameters);
}
@@ -57,4 +61,9 @@ public final class Surface_ST_PointOnSurface extends AbstractAccessorSpatialFunc
return pt;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java
index 9102819..d3c80a8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java
@@ -16,7 +16,10 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.Polygon;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -45,4 +48,9 @@ public final class ST_Polygon extends AbstractGeomConstructor{
return Polygon.class;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Polygon.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
index 887c88c..440733d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -59,4 +62,9 @@ public final class ST_Relate extends AbstractBinarySpatialFunction {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
index 70fcf22..b7cb29f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -52,4 +55,9 @@ public final class ST_SRID extends AbstractAccessorSpatialFunction<Geometry> {
return geom.getSRID();
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Integer.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java
similarity index 79%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java
index 7d26435..0d2c365 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -33,11 +36,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_StartPoint extends AbstractAccessorSpatialFunction<LineString> {
+public final class ST_StartPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_StartPoint";
- public Curve_ST_StartPoint(Expression[] parameters) {
+ public ST_StartPoint(Expression[] parameters) {
super(parameters);
}
@@ -57,4 +60,9 @@ public final class Curve_ST_StartPoint extends AbstractAccessorSpatialFunction<L
return pt;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
index 466eda4..981f540 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -50,4 +53,9 @@ public final class ST_SymDifference extends AbstractBinarySpatialFunction {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
index 3d1e9e7..85ec72a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToGeomColl extends AbstractAccessorSpatialFunction<Geometr
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
index 97f7446..c796631 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToLineString extends AbstractAccessorSpatialFunction<Geome
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
index 4c47a48..1e8e89d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiLineString;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToMultiLine extends AbstractAccessorSpatialFunction<Geomet
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiLineString.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
index 07f10ae..c99b1ee 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiPoint;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToMultiPoint extends AbstractAccessorSpatialFunction<Geome
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiPoint.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
index bb8c7dc..decf11c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiPolygon;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToMultiPolygon extends AbstractAccessorSpatialFunction<Geo
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(MultiPolygon.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
index 7cf63ae..bcfba87 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToPoint extends AbstractAccessorSpatialFunction<Geometry>
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Point.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
index aa3ee32..83ec999 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
@@ -19,6 +19,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -55,4 +58,9 @@ public final class ST_ToPolygon extends AbstractAccessorSpatialFunction<Geometry
return env;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Polygon.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
index 6a688d6..495c937 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Touches extends AbstractBinarySpatialFunction {
return left.touches(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
index c223190..4d88999 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -50,4 +53,9 @@ public final class ST_Union extends AbstractBinarySpatialFunction {
return res;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Geometry.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
index da76aab..c02e972 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -48,4 +51,9 @@ public final class ST_Within extends AbstractBinarySpatialFunction {
return left.within(right);
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Boolean.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java
index 349c5e5..4fe1946 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -29,11 +32,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_X extends AbstractAccessorSpatialFunction<Point> {
+public final class ST_X extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_X";
- public Point_ST_X(Expression[] parameters) {
+ public ST_X(Expression[] parameters) {
super(parameters);
}
@@ -52,4 +55,9 @@ public final class Point_ST_X extends AbstractAccessorSpatialFunction<Point> {
return geom.getCoordinate().x;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
index d70f882..10c26bc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
@@ -16,6 +16,8 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
@@ -24,8 +26,8 @@ import org.locationtech.jts.geom.LinearRing;
import org.locationtech.jts.geom.MultiLineString;
import org.locationtech.jts.geom.MultiPoint;
import org.locationtech.jts.geom.MultiPolygon;
-import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.Polygon;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -75,6 +77,11 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
return geom;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(getExpectedClass()).setName(getName());
+ }
+
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromWKB. <br>
* Return an ST_MultiPolygon value which is transformed from a BINARY LARGE
@@ -101,22 +108,20 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
@Override
public Geometry evaluate(Object candidate) {
- final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
- final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+ final MultiLineString mls = (MultiLineString) FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
final LinearRing exterior;
final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
- exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+ exterior = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
for (int i = 0; i < interiors.length; i++) {
- interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+ interiors[i] = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
}
- final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
- final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
+ final Polygon poly = FilterGeometryUtils.GF.createPolygon(exterior, interiors);
+ final MultiPolygon mpoly = FilterGeometryUtils.GF.createMultiPolygon(new Polygon[]{poly});
mpoly.setSRID(mls.getSRID());
- sergeo.setGeometry(mpoly);
- return sergeo;
+ return mpoly;
}
}
@@ -146,21 +151,19 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
@Override
public Geometry evaluate(Object candidate) {
- final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
- final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+ final MultiLineString mls = (MultiLineString) FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
final LinearRing exterior;
final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
- exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+ exterior = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
for (int i = 0; i < interiors.length; i++) {
- interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+ interiors[i] = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
}
- final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+ final Polygon poly = FilterGeometryUtils.GF.createPolygon(exterior, interiors);
poly.setSRID(mls.getSRID());
- sergeo.setGeometry(poly);
- return sergeo;
+ return poly;
}
}
@@ -334,8 +337,8 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
}
@Override
- protected Class<Point> getExpectedClass() {
- return Point.class;
+ protected Class<org.locationtech.jts.geom.Point> getExpectedClass() {
+ return org.locationtech.jts.geom.Point.class;
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
index 953d487..4929a7a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
@@ -16,16 +16,17 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.MultiLineString;
import org.locationtech.jts.geom.MultiPoint;
import org.locationtech.jts.geom.MultiPolygon;
-import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.Polygon;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
-import org.opengis.util.FactoryException;
/**
*
@@ -63,13 +64,7 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
final Object obj = parameters.get(0).evaluate(candidate);
final Geometry geom;
- try {
- geom = GeometrytoJTS.toJTS(String.valueOf(obj));
- } catch (FactoryException ex) {
- throw new OException(ex.getMessage(), ex);
- } catch (JAXBException ex) {
- throw new OException(ex.getMessage(), ex);
- }
+ if (true) throw new RuntimeException("GML not supported yet");
if (!getExpectedClass().isInstance(geom)) {
warning(new Exception("GML is not of expected type : " + getExpectedClass().getSimpleName()));
@@ -84,6 +79,11 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
return geom;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(getExpectedClass()).setName(getName());
+ }
+
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromGML. <br>
* Return an ST_GeomCollection value which is transformed from a CHARACTER
@@ -252,8 +252,8 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
}
@Override
- protected Class<Point> getExpectedClass() {
- return Point.class;
+ protected Class<org.locationtech.jts.geom.Point> getExpectedClass() {
+ return org.locationtech.jts.geom.Point.class;
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
index 6ea0b02..bfa5bba 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
@@ -16,6 +16,8 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
@@ -24,8 +26,8 @@ import org.locationtech.jts.geom.LinearRing;
import org.locationtech.jts.geom.MultiLineString;
import org.locationtech.jts.geom.MultiPoint;
import org.locationtech.jts.geom.MultiPolygon;
-import org.locationtech.jts.geom.Point;
import org.locationtech.jts.geom.Polygon;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -75,6 +77,11 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
return geom;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(getExpectedClass()).setName(getName());
+ }
+
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromText. <br>
* Return an ST_MultiPolygon value which is transformed from a CHARACTER
@@ -101,22 +108,20 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
@Override
public Geometry evaluate(Object candidate) {
- final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
- final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+ final MultiLineString mls = (MultiLineString) FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
final LinearRing exterior;
final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
- exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+ exterior = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
for (int i = 0; i < interiors.length; i++) {
- interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+ interiors[i] = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
}
- final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
- final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
+ final Polygon poly = FilterGeometryUtils.GF.createPolygon(exterior, interiors);
+ final MultiPolygon mpoly = FilterGeometryUtils.GF.createMultiPolygon(new Polygon[]{poly});
mpoly.setSRID(mls.getSRID());
- sergeo.setGeometry(mpoly);
- return sergeo;
+ return mpoly;
}
}
@@ -146,21 +151,19 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
@Override
public Geometry evaluate(Object candidate) {
- final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
- final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+ final MultiLineString mls = (MultiLineString) FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
final LinearRing exterior;
final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
- exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+ exterior = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
for (int i = 0; i < interiors.length; i++) {
- interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+ interiors[i] = FilterGeometryUtils.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
}
- final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+ final Polygon poly = FilterGeometryUtils.GF.createPolygon(exterior, interiors);
poly.setSRID(mls.getSRID());
- sergeo.setGeometry(poly);
- return sergeo;
+ return poly;
}
}
@@ -335,8 +338,8 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
}
@Override
- protected Class<Point> getExpectedClass() {
- return Point.class;
+ protected Class<org.locationtech.jts.geom.Point> getExpectedClass() {
+ return org.locationtech.jts.geom.Point.class;
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java
index 5be528a..3adfb18 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -29,11 +32,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_Y extends AbstractAccessorSpatialFunction<Point> {
+public final class ST_Y extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Y";
- public Point_ST_Y(Expression[] parameters) {
+ public ST_Y(Expression[] parameters) {
super(parameters);
}
@@ -52,4 +55,9 @@ public final class Point_ST_Y extends AbstractAccessorSpatialFunction<Point> {
return geom.getCoordinate().y;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java
similarity index 77%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java
index 18c3949..ac4fa05 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java
@@ -18,6 +18,9 @@ package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -29,11 +32,11 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_Z extends AbstractAccessorSpatialFunction<Point> {
+public final class ST_Z extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Z";
- public Point_ST_Z(Expression[] parameters) {
+ public ST_Z(Expression[] parameters) {
super(parameters);
}
@@ -52,4 +55,9 @@ public final class Point_ST_Z extends AbstractAccessorSpatialFunction<Point> {
return geom.getCoordinate().z;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(Double.class).setName(NAME);
+ }
+
}
[sis] 01/03: SQL/MM : cleaning code
Posted by js...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jsorel pushed a commit to branch feat/sqlmm
in repository https://gitbox.apache.org/repos/asf/sis.git
commit fb76a3d0cc7d7ebd0e108b1071883fb77c027389
Author: jsorel <jo...@geomatys.com>
AuthorDate: Wed Nov 27 10:19:30 2019 +0100
SQL/MM : cleaning code
---
.../sis/internal/filter/FilterGeometryUtils.java | 2 -
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 249 ++++++++++++++++++++-
.../apache/sis/internal/filter/sqlmm/ST_Point.java | 3 +-
.../sis/internal/filter/sqlmm/ST_Transform.java | 8 +
...d.java => AbstractAccessorSpatialFunction.java} | 4 +-
...hod.java => AbstractBinarySpatialFunction.java} | 6 +-
.../filter/sqlmm/todo/AbstractSpatialFunction.java | 32 ++-
.../filter/sqlmm/todo/AbstractSpatialMethod.java | 90 --------
.../sqlmm/todo/CurvePolygon_ST_ExteriorRing.java | 2 +-
.../sqlmm/todo/CurvePolygon_ST_InteriorRingN.java | 2 +-
.../todo/CurvePolygon_ST_NumInteriorRings.java | 2 +-
.../filter/sqlmm/todo/Curve_ST_EndPoint.java | 2 +-
.../filter/sqlmm/todo/Curve_ST_IsClosed.java | 2 +-
.../filter/sqlmm/todo/Curve_ST_IsRing.java | 2 +-
.../filter/sqlmm/todo/Curve_ST_Length.java | 2 +-
.../filter/sqlmm/todo/Curve_ST_StartPoint.java | 2 +-
.../filter/sqlmm/todo/GeomColl_ST_GeometryN.java | 2 +-
.../sqlmm/todo/GeomColl_ST_NumGeometries.java | 2 +-
.../filter/sqlmm/todo/Line_ST_NumPoints.java | 2 +-
.../internal/filter/sqlmm/todo/Line_ST_PointN.java | 4 +-
.../filter/sqlmm/todo/Point_ST_ExplicitPoint.java | 2 +-
.../sis/internal/filter/sqlmm/todo/Point_ST_X.java | 2 +-
.../sis/internal/filter/sqlmm/todo/Point_ST_Y.java | 2 +-
.../sis/internal/filter/sqlmm/todo/Point_ST_Z.java | 2 +-
.../internal/filter/sqlmm/todo/ST_AsBinary.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_AsGML.java | 33 +--
.../sis/internal/filter/sqlmm/todo/ST_AsText.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Boundary.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Buffer.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Contains.java | 2 +-
.../internal/filter/sqlmm/todo/ST_ConvexHull.java | 2 +-
.../internal/filter/sqlmm/todo/ST_CoordDim.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Crosses.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Difference.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Dimension.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Disjoint.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Distance.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Envelope.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Equals.java | 2 +-
.../filter/sqlmm/todo/ST_GeometryType.java | 2 +-
.../filter/sqlmm/todo/ST_Intersection.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Intersects.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Is3D.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_IsEmpty.java | 2 +-
.../internal/filter/sqlmm/todo/ST_IsSimple.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_IsValid.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Overlaps.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Point.java | 7 +-
.../sis/internal/filter/sqlmm/todo/ST_Relate.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_SRID.java | 2 +-
.../filter/sqlmm/todo/ST_SymDifference.java | 2 +-
.../internal/filter/sqlmm/todo/ST_ToGeomColl.java | 2 +-
.../filter/sqlmm/todo/ST_ToLineString.java | 2 +-
.../internal/filter/sqlmm/todo/ST_ToMultiLine.java | 2 +-
.../filter/sqlmm/todo/ST_ToMultiPoint.java | 2 +-
.../filter/sqlmm/todo/ST_ToMultiPolygon.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_ToPoint.java | 2 +-
.../internal/filter/sqlmm/todo/ST_ToPolygon.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Touches.java | 2 +-
.../internal/filter/sqlmm/todo/ST_Transform.java | 80 -------
.../sis/internal/filter/sqlmm/todo/ST_Union.java | 2 +-
.../sis/internal/filter/sqlmm/todo/ST_Within.java | 2 +-
.../internal/filter/sqlmm/todo/ST_XFromBinary.java | 90 ++------
.../internal/filter/sqlmm/todo/ST_XFromGML.java | 77 ++-----
.../internal/filter/sqlmm/todo/ST_XFromText.java | 91 ++------
.../filter/sqlmm/todo/SpatialFunctionFactory.java | 123 ----------
.../filter/sqlmm/todo/SpatialMethodFactory.java | 150 -------------
.../filter/sqlmm/todo/Surface_ST_Area.java | 2 +-
.../filter/sqlmm/todo/Surface_ST_Centroid.java | 2 +-
.../filter/sqlmm/todo/Surface_ST_Perimeter.java | 2 +-
.../sqlmm/todo/Surface_ST_PointOnSurface.java | 2 +-
71 files changed, 406 insertions(+), 751 deletions(-)
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FilterGeometryUtils.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FilterGeometryUtils.java
index c78ac33..0577685 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FilterGeometryUtils.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/FilterGeometryUtils.java
@@ -16,8 +16,6 @@
*/
package org.apache.sis.internal.filter;
-import java.util.logging.Level;
-import java.util.logging.Logger;
import javax.measure.Unit;
import org.apache.sis.coverage.grid.GridCoverage;
import org.apache.sis.filter.CRSMatching;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
index 171506c..ef9a6d3 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
@@ -23,8 +23,69 @@ import org.opengis.filter.expression.Function;
import org.opengis.util.FactoryException;
import org.apache.sis.internal.feature.FunctionRegister;
import org.apache.sis.internal.feature.Resources;
+import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_ExteriorRing;
+import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_InteriorRingN;
+import org.apache.sis.internal.filter.sqlmm.todo.CurvePolygon_ST_NumInteriorRings;
+import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_EndPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_IsClosed;
+import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_IsRing;
+import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_Length;
+import org.apache.sis.internal.filter.sqlmm.todo.Curve_ST_StartPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.GeomColl_ST_GeometryN;
+import org.apache.sis.internal.filter.sqlmm.todo.GeomColl_ST_NumGeometries;
+import org.apache.sis.internal.filter.sqlmm.todo.Line_ST_NumPoints;
+import org.apache.sis.internal.filter.sqlmm.todo.Line_ST_PointN;
+import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_ExplicitPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_X;
+import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_Y;
+import org.apache.sis.internal.filter.sqlmm.todo.Point_ST_Z;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_AsBinary;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_AsGML;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_AsText;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Boundary;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Contains;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ConvexHull;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_CoordDim;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Crosses;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Difference;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Dimension;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Disjoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Distance;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Equals;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_GeomCollection;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_GeometryType;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Intersection;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Intersects;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Is3D;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_IsEmpty;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_IsSimple;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_IsValid;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiLineString;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiPolygon;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Overlaps;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Polygon;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Relate;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_SRID;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_SymDifference;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToGeomColl;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToLineString;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiLine;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiPolygon;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToPoint;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_ToPolygon;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Touches;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Union;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_Within;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromBinary;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromGML;
+import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromText;
+import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Area;
+import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Centroid;
+import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_Perimeter;
+import org.apache.sis.internal.filter.sqlmm.todo.Surface_ST_PointOnSurface;
import org.apache.sis.util.ArgumentChecks;
-import org.locationtech.jts.geom.GeometryFactory;
/**
@@ -42,11 +103,6 @@ import org.locationtech.jts.geom.GeometryFactory;
public final class SQLMM implements FunctionRegister {
/**
- * JTS factory used by multiple functions.
- */
- static final GeometryFactory GF = new GeometryFactory();
-
- /**
* Creates the default register.
*/
public SQLMM() {
@@ -66,14 +122,102 @@ public final class SQLMM implements FunctionRegister {
@Override
public Collection<String> getNames() {
return Arrays.asList(
+ CurvePolygon_ST_ExteriorRing.NAME,
+ CurvePolygon_ST_InteriorRingN.NAME,
+ CurvePolygon_ST_NumInteriorRings.NAME,
+ Curve_ST_EndPoint.NAME,
+ Curve_ST_IsClosed.NAME,
+ Curve_ST_IsRing.NAME,
+ Curve_ST_Length.NAME,
+ Curve_ST_StartPoint.NAME,
+ GeomColl_ST_GeometryN.NAME,
+ GeomColl_ST_NumGeometries.NAME,
+ Line_ST_NumPoints.NAME,
+ Line_ST_PointN.NAME,
+ Point_ST_ExplicitPoint.NAME,
+ Point_ST_X.NAME,
+ Point_ST_Y.NAME,
+ Point_ST_Z.NAME,
+ ST_AsBinary.NAME,
+ ST_AsGML.NAME,
+ ST_AsText.NAME,
+ ST_Boundary.NAME,
ST_Buffer.NAME,
ST_Centroid.NAME,
+ ST_Contains.NAME,
+ ST_ConvexHull.NAME,
+ ST_CoordDim.NAME,
+ ST_Crosses.NAME,
+ ST_Difference.NAME,
+ ST_Dimension.NAME,
+ ST_Disjoint.NAME,
+ ST_Distance.NAME,
ST_Envelope.NAME,
- ST_Point.NAME,
+ ST_Equals.NAME,
+ ST_GeomCollection.NAME,
+ ST_GeometryType.NAME,
+ ST_Intersection.NAME,
+ ST_Intersects.NAME,
+ ST_Is3D.NAME,
+ ST_IsEmpty.NAME,
+ ST_IsSimple.NAME,
+ ST_IsValid.NAME,
ST_LineString.NAME,
+ ST_MultiLineString.NAME,
+ ST_MultiPoint.NAME,
+ ST_MultiPolygon.NAME,
+ ST_Overlaps.NAME,
+ ST_Point.NAME,
+ ST_Polygon.NAME,
+ ST_Relate.NAME,
ST_Simplify.NAME,
ST_SimplifyPreserveTopology.NAME,
- ST_Transform.NAME);
+ ST_SRID.NAME,
+ ST_SymDifference.NAME,
+ ST_ToGeomColl.NAME,
+ ST_ToLineString.NAME,
+ ST_ToMultiLine.NAME,
+ ST_ToMultiPoint.NAME,
+ ST_ToMultiPolygon.NAME,
+ ST_ToPoint.NAME,
+ ST_ToPolygon.NAME,
+ ST_Touches.NAME,
+ ST_Transform.NAME,
+ ST_Union.NAME,
+ ST_Within.NAME,
+ ST_XFromBinary.BdMPoly.NAME,
+ ST_XFromBinary.BdPoly.NAME,
+ ST_XFromBinary.GeomColl.NAME,
+ ST_XFromBinary.Geom.NAME,
+ ST_XFromBinary.Line.NAME,
+ ST_XFromBinary.MLine.NAME,
+ ST_XFromBinary.MPoint.NAME,
+ ST_XFromBinary.MPoly.NAME,
+ ST_XFromBinary.Point.NAME,
+ ST_XFromBinary.Poly.NAME,
+ ST_XFromGML.GeomColl.NAME,
+ ST_XFromGML.Geom.NAME,
+ ST_XFromGML.Line.NAME,
+ ST_XFromGML.MLine.NAME,
+ ST_XFromGML.MPoint.NAME,
+ ST_XFromGML.MPoly.NAME,
+ ST_XFromGML.Point.NAME,
+ ST_XFromGML.Poly.NAME,
+ ST_XFromText.BdMPoly.NAME,
+ ST_XFromText.BdPoly.NAME,
+ ST_XFromText.GeomColl.NAME,
+ ST_XFromText.Geom.NAME,
+ ST_XFromText.Line.NAME,
+ ST_XFromText.MLine.NAME,
+ ST_XFromText.MPoint.NAME,
+ ST_XFromText.MPoly.NAME,
+ ST_XFromText.Point.NAME,
+ ST_XFromText.Poly.NAME,
+ Surface_ST_Area.NAME,
+ Surface_ST_Centroid.NAME,
+ Surface_ST_Perimeter.NAME,
+ Surface_ST_PointOnSurface.NAME
+ );
}
/**
@@ -94,14 +238,101 @@ public final class SQLMM implements FunctionRegister {
}
try {
switch (name) {
+ case CurvePolygon_ST_ExteriorRing.NAME: return new CurvePolygon_ST_ExteriorRing(parameters);
+ case CurvePolygon_ST_InteriorRingN.NAME: return new CurvePolygon_ST_InteriorRingN(parameters);
+ case CurvePolygon_ST_NumInteriorRings.NAME: return new CurvePolygon_ST_NumInteriorRings(parameters);
+ case Curve_ST_EndPoint.NAME: return new Curve_ST_EndPoint(parameters);
+ case Curve_ST_IsClosed.NAME: return new Curve_ST_IsClosed(parameters);
+ case Curve_ST_IsRing.NAME: return new Curve_ST_IsRing(parameters);
+ case Curve_ST_Length.NAME: return new Curve_ST_Length(parameters);
+ case Curve_ST_StartPoint.NAME: return new Curve_ST_StartPoint(parameters);
+ case GeomColl_ST_GeometryN.NAME: return new GeomColl_ST_GeometryN(parameters);
+ case GeomColl_ST_NumGeometries.NAME: return new GeomColl_ST_NumGeometries(parameters);
+ case Line_ST_NumPoints.NAME: return new Line_ST_NumPoints(parameters);
+ case Line_ST_PointN.NAME: return new Line_ST_PointN(parameters);
+ case Point_ST_ExplicitPoint.NAME: return new Point_ST_ExplicitPoint(parameters);
+ case Point_ST_X.NAME: return new Point_ST_X(parameters);
+ case Point_ST_Y.NAME: return new Point_ST_Y(parameters);
+ case Point_ST_Z.NAME: return new Point_ST_Z(parameters);
+ case ST_AsBinary.NAME: return new ST_AsBinary(parameters);
+ case ST_AsGML.NAME: return new ST_AsGML(parameters);
+ case ST_AsText.NAME: return new ST_AsText(parameters);
+ case ST_Boundary.NAME: return new ST_Boundary(parameters);
case ST_Buffer.NAME: return new ST_Buffer(parameters);
case ST_Centroid.NAME: return new ST_Centroid(parameters);
+ case ST_Contains.NAME: return new ST_Contains(parameters);
+ case ST_ConvexHull.NAME: return new ST_ConvexHull(parameters);
+ case ST_CoordDim.NAME: return new ST_CoordDim(parameters);
+ case ST_Crosses.NAME: return new ST_Crosses(parameters);
+ case ST_Difference.NAME: return new ST_Difference(parameters);
+ case ST_Dimension.NAME: return new ST_Dimension(parameters);
+ case ST_Disjoint.NAME: return new ST_Disjoint(parameters);
+ case ST_Distance.NAME: return new ST_Distance(parameters);
case ST_Envelope.NAME: return new ST_Envelope(parameters);
- case ST_Point.NAME: return new ST_Point(parameters);
+ case ST_Equals.NAME: return new ST_Equals(parameters);
+ case ST_GeomCollection.NAME: return new ST_GeomCollection(parameters);
+ case ST_GeometryType.NAME: return new ST_GeometryType(parameters);
+ case ST_Intersection.NAME: return new ST_Intersection(parameters);
+ case ST_Intersects.NAME: return new ST_Intersects(parameters);
+ case ST_Is3D.NAME: return new ST_Is3D(parameters);
+ case ST_IsEmpty.NAME: return new ST_IsEmpty(parameters);
+ case ST_IsSimple.NAME: return new ST_IsSimple(parameters);
+ case ST_IsValid.NAME: return new ST_IsValid(parameters);
case ST_LineString.NAME: return new ST_LineString(parameters);
+ case ST_MultiLineString.NAME: return new ST_MultiLineString(parameters);
+ case ST_MultiPoint.NAME: return new ST_MultiPoint(parameters);
+ case ST_MultiPolygon.NAME: return new ST_MultiPolygon(parameters);
+ case ST_Overlaps.NAME: return new ST_Overlaps(parameters);
+ case ST_Point.NAME: return new ST_Point(parameters);
+ case ST_Polygon.NAME: return new ST_Polygon(parameters);
+ case ST_Relate.NAME: return new ST_Relate(parameters);
case ST_Simplify.NAME: return new ST_Simplify(parameters);
case ST_SimplifyPreserveTopology.NAME: return new ST_SimplifyPreserveTopology(parameters);
+ case ST_SRID.NAME: return new ST_SRID(parameters);
+ case ST_SymDifference.NAME: return new ST_SymDifference(parameters);
+ case ST_ToGeomColl.NAME: return new ST_ToGeomColl(parameters);
+ case ST_ToLineString.NAME: return new ST_ToLineString(parameters);
+ case ST_ToMultiLine.NAME: return new ST_ToMultiLine(parameters);
+ case ST_ToMultiPoint.NAME: return new ST_ToMultiPoint(parameters);
+ case ST_ToMultiPolygon.NAME: return new ST_ToMultiPolygon(parameters);
+ case ST_ToPoint.NAME: return new ST_ToPoint(parameters);
+ case ST_ToPolygon.NAME: return new ST_ToPolygon(parameters);
+ case ST_Touches.NAME: return new ST_Touches(parameters);
case ST_Transform.NAME: return new ST_Transform(parameters);
+ case ST_Union.NAME: return new ST_Union(parameters);
+ case ST_Within.NAME: return new ST_Within(parameters);
+ case ST_XFromBinary.BdMPoly.NAME: return new ST_XFromBinary.BdMPoly(parameters);
+ case ST_XFromBinary.BdPoly.NAME: return new ST_XFromBinary.BdPoly(parameters);
+ case ST_XFromBinary.GeomColl.NAME: return new ST_XFromBinary.GeomColl(parameters);
+ case ST_XFromBinary.Geom.NAME: return new ST_XFromBinary.Geom(parameters);
+ case ST_XFromBinary.Line.NAME: return new ST_XFromBinary.Line(parameters);
+ case ST_XFromBinary.MLine.NAME: return new ST_XFromBinary.MLine(parameters);
+ case ST_XFromBinary.MPoint.NAME: return new ST_XFromBinary.MPoint(parameters);
+ case ST_XFromBinary.MPoly.NAME: return new ST_XFromBinary.MPoly(parameters);
+ case ST_XFromBinary.Point.NAME: return new ST_XFromBinary.Point(parameters);
+ case ST_XFromBinary.Poly.NAME: return new ST_XFromBinary.Poly(parameters);
+ case ST_XFromGML.GeomColl.NAME: return new ST_XFromGML.GeomColl(parameters);
+ case ST_XFromGML.Geom.NAME: return new ST_XFromGML.Geom(parameters);
+ case ST_XFromGML.Line.NAME: return new ST_XFromGML.Line(parameters);
+ case ST_XFromGML.MLine.NAME: return new ST_XFromGML.MLine(parameters);
+ case ST_XFromGML.MPoint.NAME: return new ST_XFromGML.MPoint(parameters);
+ case ST_XFromGML.MPoly.NAME: return new ST_XFromGML.MPoly(parameters);
+ case ST_XFromGML.Point.NAME: return new ST_XFromGML.Point(parameters);
+ case ST_XFromGML.Poly.NAME: return new ST_XFromGML.Poly(parameters);
+ case ST_XFromText.BdMPoly.NAME: return new ST_XFromText.BdMPoly(parameters);
+ case ST_XFromText.BdPoly.NAME: return new ST_XFromText.BdPoly(parameters);
+ case ST_XFromText.GeomColl.NAME: return new ST_XFromText.GeomColl(parameters);
+ case ST_XFromText.Geom.NAME: return new ST_XFromText.Geom(parameters);
+ case ST_XFromText.Line.NAME: return new ST_XFromText.Line(parameters);
+ case ST_XFromText.MLine.NAME: return new ST_XFromText.MLine(parameters);
+ case ST_XFromText.MPoint.NAME: return new ST_XFromText.MPoint(parameters);
+ case ST_XFromText.MPoly.NAME: return new ST_XFromText.MPoly(parameters);
+ case ST_XFromText.Point.NAME: return new ST_XFromText.Point(parameters);
+ case ST_XFromText.Poly.NAME: return new ST_XFromText.Poly(parameters);
+ case Surface_ST_Area.NAME: return new Surface_ST_Area(parameters);
+ //case Surface_ST_Centroid.NAME: return new Surface_ST_Centroid(parameters);
+ case Surface_ST_Perimeter.NAME: return new Surface_ST_Perimeter(parameters);
+ case Surface_ST_PointOnSurface.NAME: return new Surface_ST_PointOnSurface(parameters);
default: throw new IllegalArgumentException(Resources.format(Resources.Keys.UnknownFunction_1, name));
}
} catch (FactoryException e) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
index bbdf568..8940612 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Point.java
@@ -21,6 +21,7 @@ import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.NamedFunction;
import org.apache.sis.internal.feature.FeatureExpression;
+import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.apache.sis.referencing.CRS;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Point;
@@ -107,7 +108,7 @@ final class ST_Point extends NamedFunction implements FeatureExpression {
}
}
- final Point point = SQLMM.GF.createPoint(new Coordinate(x.doubleValue(), y.doubleValue()));
+ final Point point = FilterGeometryUtils.GF.createPoint(new Coordinate(x.doubleValue(), y.doubleValue()));
point.setUserData(crs);
return point;
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
index 986a6e9..726f2a4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Transform.java
@@ -39,8 +39,16 @@ import org.apache.sis.util.resources.Errors;
/**
+ * SQL/MM, ISO/IEC 13249-3:2011, ST_Transform. <br>
+ * <p>
+ * Return an ST_Geometry value transformed to the specified spatial reference system, considering z and m
+ * coordinate values in the calculations and including them in the resultant geometry.
+ * </p>
+ *
+ * <p>
* An expression which transforms a geometry from one CRS to another CRS.
* This expression expects two arguments:
+ * </p>
*
* <ol class="verbose">
* <li>An expression returning a geometry object. The evaluated value shall be an instance of
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialMethod.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java
similarity index 91%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialMethod.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java
index 9ee7600..2c4963a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialMethod.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java
@@ -26,9 +26,9 @@ import org.opengis.filter.expression.Expression;
*
* @author Johann Sorel (Geomatys)
*/
-public abstract class AbstractAccessorSpatialMethod<T extends Geometry> extends AbstractSpatialMethod {
+public abstract class AbstractAccessorSpatialFunction<T extends Geometry> extends AbstractSpatialFunction {
- public AbstractAccessorSpatialMethod(Expression[] parameters) {
+ public AbstractAccessorSpatialFunction(Expression[] parameters) {
super(parameters);
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialMethod.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java
similarity index 91%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialMethod.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java
index 87521a7..773db54 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialMethod.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java
@@ -31,9 +31,9 @@ import org.opengis.util.FactoryException;
* @since 2.0
* @module
*/
-public abstract class AbstractBinarySpatialMethod extends AbstractSpatialMethod {
+public abstract class AbstractBinarySpatialFunction extends AbstractSpatialFunction {
- public AbstractBinarySpatialMethod(Expression[] parameters) {
+ public AbstractBinarySpatialFunction(Expression[] parameters) {
super(parameters);
}
@@ -52,7 +52,7 @@ public abstract class AbstractBinarySpatialMethod extends AbstractSpatialMethod
Geometry left = FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
Geometry right = FilterGeometryUtils.toGeometry(candidate, parameters.get(1));
try {
- final Geometry[] geoms = toSameCRS(left, right);
+ final Geometry[] geoms = FilterGeometryUtils.toSameCRS(left, right);
left = geoms[0];
right = geoms[1];
} catch (FactoryException ex) {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
index b66a74b..00c93cd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
@@ -16,15 +16,12 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
-import org.locationtech.jts.geom.GeometryFactory;
import java.util.logging.Logger;
import org.apache.sis.internal.filter.NamedFunction;
import org.apache.sis.util.logging.Logging;
import org.opengis.filter.expression.Expression;
/**
- * Provide convinient methods to manipulation geometries.
- * this class is not thread safe.
*
* @author Johann Sorel (Geomatys)
* @version 2.0
@@ -34,7 +31,6 @@ import org.opengis.filter.expression.Expression;
public abstract class AbstractSpatialFunction extends NamedFunction {
protected static final Logger LOGGER = Logging.getLogger(AbstractSpatialFunction.class);
- protected static final GeometryFactory GF = new GeometryFactory();
public AbstractSpatialFunction(Expression[] parameters){
super(parameters);
@@ -48,4 +44,32 @@ public abstract class AbstractSpatialFunction extends NamedFunction {
return 1;
}
+ public String getSyntax() {
+ final int minparams = getMinParams();
+ final int maxparams = getMaxParams();
+ final StringBuilder sb = new StringBuilder();
+ sb.append(getName());
+ sb.append('(');
+ for (int i = 0; i < minparams; i++) {
+ if (i != 0) {
+ sb.append(", ");
+ }
+ sb.append("param");
+ sb.append(i + 1);
+ }
+ if (minparams != maxparams) {
+ sb.append('[');
+ for (int i = minparams; i < maxparams; i++) {
+ if (i != 0) {
+ sb.append(", ");
+ }
+ sb.append("param");
+ sb.append(i + 1);
+ }
+ sb.append(']');
+ }
+ sb.append(')');
+
+ return sb.toString();
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialMethod.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialMethod.java
deleted file mode 100644
index 3cedd69..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialMethod.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.locationtech.jts.geom.Geometry;
-import org.locationtech.jts.io.WKBWriter;
-import org.locationtech.jts.io.WKTWriter;
-import java.util.logging.Logger;
-import org.apache.sis.internal.filter.FilterGeometryUtils;
-import org.apache.sis.internal.filter.NamedFunction;
-import org.apache.sis.util.logging.Logging;
-import org.opengis.filter.expression.Expression;
-import org.opengis.referencing.operation.TransformException;
-import org.opengis.util.FactoryException;
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public abstract class AbstractSpatialMethod extends NamedFunction {
-
- protected static final Logger LOGGER = Logging.getLogger(AbstractSpatialMethod.class);
-
- public AbstractSpatialMethod(Expression[] parameters) {
- super(parameters);
- }
-
- protected int getMinParams() {
- return 1;
- }
-
- protected int getMaxParams() {
- return 1;
- }
-
- public String getSyntax() {
- final int minparams = getMinParams();
- final int maxparams = getMaxParams();
- final StringBuilder sb = new StringBuilder();
- sb.append(getName());
- sb.append('(');
- for (int i = 0; i < minparams; i++) {
- if (i != 0) {
- sb.append(", ");
- }
- sb.append("param");
- sb.append(i + 1);
- }
- if (minparams != maxparams) {
- sb.append('[');
- for (int i = minparams; i < maxparams; i++) {
- if (i != 0) {
- sb.append(", ");
- }
- sb.append("param");
- sb.append(i + 1);
- }
- sb.append(']');
- }
- sb.append(')');
-
- return sb.toString();
- }
-
- /**
- * Reproject geometries to the same CRS if needed and if possible.
- */
- protected static Geometry[] toSameCRS(final Geometry leftGeom, final Geometry rightGeom)
- throws FactoryException, TransformException {
- return FilterGeometryUtils.toSameCRS(leftGeom, rightGeom);
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java
index a8022d0..15dd7a4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_ExteriorRing.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_ExteriorRing extends AbstractAccessorSpatialMethod<Polygon> {
+public final class CurvePolygon_ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_ExteriorRing";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java
index dc34048..c9c5d11 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_InteriorRingN.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_InteriorRingN extends AbstractAccessorSpatialMethod<Polygon> {
+public final class CurvePolygon_ST_InteriorRingN extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_InteriorRingN";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java
index 447202d..3ea83a8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/CurvePolygon_ST_NumInteriorRings.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class CurvePolygon_ST_NumInteriorRings extends AbstractAccessorSpatialMethod<Polygon> {
+public final class CurvePolygon_ST_NumInteriorRings extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_NumInteriorRings";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java
index e4ad389..29a20c4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_EndPoint.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_EndPoint extends AbstractAccessorSpatialMethod<LineString> {
+public final class Curve_ST_EndPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_EndPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java
index be25536..2b17b72 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsClosed.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_IsClosed extends AbstractAccessorSpatialMethod<LineString> {
+public final class Curve_ST_IsClosed extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsClosed";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java
index e94713f..c213ace 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_IsRing.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_IsRing extends AbstractAccessorSpatialMethod<LineString> {
+public final class Curve_ST_IsRing extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsRing";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java
index 8573d38..c262ce6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_Length.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_Length extends AbstractAccessorSpatialMethod<Geometry> {
+public final class Curve_ST_Length extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Length";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java
index de83dd3..7d26435 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Curve_ST_StartPoint.java
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Curve_ST_StartPoint extends AbstractAccessorSpatialMethod<LineString> {
+public final class Curve_ST_StartPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_StartPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java
index d55cc7b..c2d4410 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_GeometryN.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class GeomColl_ST_GeometryN extends AbstractAccessorSpatialMethod<Geometry> {
+public final class GeomColl_ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_GeometryN";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java
index a1b6a38..30434ae 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/GeomColl_ST_NumGeometries.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class GeomColl_ST_NumGeometries extends AbstractAccessorSpatialMethod<Geometry> {
+public final class GeomColl_ST_NumGeometries extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_NumGeometries";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java
index 838f96b..5f51805 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_NumPoints.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Line_ST_NumPoints extends AbstractAccessorSpatialMethod<LineString> {
+public final class Line_ST_NumPoints extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_NumPoints";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java
index 7dbc784..f247113 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Line_ST_PointN.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Line_ST_PointN extends AbstractAccessorSpatialMethod<LineString> {
+public final class Line_ST_PointN extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_PointN";
@@ -63,7 +63,7 @@ public final class Line_ST_PointN extends AbstractAccessorSpatialMethod<LineStri
final int index = Integer.parseInt(params[1].toString());
final Point pt = geom.getPointN(index-1);
pt.setSRID(geom.getSRID());
- return new OSerializableGeometry(pt);
+ return pt;
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java
index 0cdb745..8188c60 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_ExplicitPoint.java
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_ExplicitPoint extends AbstractAccessorSpatialMethod<Point> {
+public final class Point_ST_ExplicitPoint extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_ExplicitPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java
index 65503e5..349c5e5 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_X.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_X extends AbstractAccessorSpatialMethod<Point> {
+public final class Point_ST_X extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_X";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java
index 37cdc0a..5be528a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Y.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_Y extends AbstractAccessorSpatialMethod<Point> {
+public final class Point_ST_Y extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Y";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java
index 5f876f4..18c3949 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Point_ST_Z.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Point_ST_Z extends AbstractAccessorSpatialMethod<Point> {
+public final class Point_ST_Z extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Z";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
index 1501349..d09cc57 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_AsBinary extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_AsBinary extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsBinary";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
index ad3187b..cfd8ff8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
@@ -17,16 +17,8 @@
package org.apache.sis.internal.filter.sqlmm.todo;
import org.locationtech.jts.geom.Geometry;
-import java.io.StringWriter;
import java.text.ParseException;
-import java.util.logging.Level;
-import javax.xml.bind.JAXBException;
-import javax.xml.bind.Marshaller;
-import org.geotoolkit.gml.JTStoGeometry;
-import org.geotoolkit.gml.xml.AbstractGeometry;
-import org.geotoolkit.gml.xml.GMLMarshallerPool;
import org.opengis.filter.expression.Expression;
-import org.opengis.util.FactoryException;
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_AsGML. <br>
@@ -37,7 +29,7 @@ import org.opengis.util.FactoryException;
* @since 2.0
* @module
*/
-public final class ST_AsGML extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_AsGML extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsGML";
@@ -57,27 +49,8 @@ public final class ST_AsGML extends AbstractAccessorSpatialMethod<Geometry> {
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
- Marshaller marshaller = null;
- try{
- final AbstractGeometry gmlgeo = JTStoGeometry.toGML("3.1.1",geom);
-
- final StringWriter writer = new StringWriter();
- marshaller = GMLMarshallerPool.getInstance().acquireMarshaller();
- marshaller.marshal(gmlgeo, writer);
- writer.flush();
- return writer.getBuffer().toString();
-
- }catch(FactoryException ex){
- LOGGER.log(Level.WARNING, ex.getMessage(), ex);
- return null;
- }catch(JAXBException ex){
- LOGGER.log(Level.WARNING, ex.getMessage(), ex);
- return null;
- }finally{
- if(marshaller != null){
- GMLMarshallerPool.getInstance().recycle(marshaller);
- }
- }
+ //TODO marshall to GML 3.1.1
+ throw new ParseException("Not implemented", 0);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
index 60d50f1..d689445 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_AsText extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_AsText extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsText";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
index be38e76..3415499 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Boundary extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_Boundary extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Boundary";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
index 6665c7c..f88775f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Buffer extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_Buffer extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Buffer";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
index 2ec8139..9aad95a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Contains extends AbstractBinarySpatialMethod {
+public final class ST_Contains extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Contains";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
index d45abb8..8ceb191 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ConvexHull extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ConvexHull extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ConvexHull";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
index c6f0cf7..14bfa4c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_CoordDim extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_CoordDim extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_CoordDim";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
index cea80ef..062533a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Crosses extends AbstractBinarySpatialMethod {
+public final class ST_Crosses extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Crosses";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
index d3f774b..2c391bd 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Difference extends AbstractBinarySpatialMethod {
+public final class ST_Difference extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Difference";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
index 889b8cd..731ee2c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Dimension extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_Dimension extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Dimension";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
index efb6e2c..d0f99ab 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Disjoint extends AbstractBinarySpatialMethod {
+public final class ST_Disjoint extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Disjoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
index 8a8ac43..2b917b9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Distance extends AbstractBinarySpatialMethod {
+public final class ST_Distance extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Distance";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
index 25dfbd1..25dae29 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Envelope extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_Envelope extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Envelope";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
index 9226eda..46d491c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Equals extends AbstractBinarySpatialMethod {
+public final class ST_Equals extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Equals";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
index 2ff77df..663a24a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
@@ -39,7 +39,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_GeometryType extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_GeometryType extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_GeometryType";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
index afabeeb..6dd4c34 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Intersection extends AbstractBinarySpatialMethod {
+public final class ST_Intersection extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Intersection";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
index 37b6506..c54dcf8 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
@@ -31,7 +31,7 @@ coordinate values in the calculations.
* @since 2.0
* @module
*/
-public final class ST_Intersects extends AbstractBinarySpatialMethod {
+public final class ST_Intersects extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Intersects";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
index 0db435e..64c6476 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Is3D extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_Is3D extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Is3D";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
index b02eec7..5cc7308 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsEmpty extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_IsEmpty extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsEmpty";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
index fa8e607..2c711de 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsSimple extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_IsSimple extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsSimple";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
index 195b218..c0064e0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsValid extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_IsValid extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsValid";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
index b01d930..06bda2d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Overlaps extends AbstractBinarySpatialMethod {
+public final class ST_Overlaps extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Overlaps";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
index 8c8233e..1528f16 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
@@ -20,6 +20,7 @@ import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
import java.math.BigDecimal;
+import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.opengis.filter.expression.Expression;
/**
@@ -78,7 +79,7 @@ public final class ST_Point extends AbstractSpatialFunction{
// X,Y
final Number obj1 = (Number) arg0;
final Number obj2 = (Number) arg1;
- geom = GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue()));
+ geom = FilterGeometryUtils.GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue()));
}else{
//WKT/WKB + srid
try {
@@ -94,7 +95,7 @@ public final class ST_Point extends AbstractSpatialFunction{
final Number obj1 = (Number) children.get(0).evaluate(context, candidate);
final Number obj2 = (Number) children.get(1).evaluate(context, candidate);
final Number obj3 = (Number) children.get(2).evaluate(context, candidate);
- geom = GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue()));
+ geom = FilterGeometryUtils.GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue()));
if(obj3 instanceof Float || obj3 instanceof Double || obj3 instanceof BigDecimal){
// Z
geom.getCoordinate().z = obj3.doubleValue();
@@ -107,7 +108,7 @@ public final class ST_Point extends AbstractSpatialFunction{
final Number obj1 = (Number) children.get(0).evaluate(context, candidate);
final Number obj2 = (Number) children.get(1).evaluate(context, candidate);
final Number obj3 = (Number) children.get(2).evaluate(context, candidate);
- geom = GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue(), obj3.doubleValue()));
+ geom = FilterGeometryUtils.GF.createPoint(new Coordinate(obj1.doubleValue(), obj2.doubleValue(), obj3.doubleValue()));
geom.setSRID( ((Number) children.get(3).evaluate(context, candidate) ).intValue() );
}else{
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
index e2bb2ba..887c88c 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Relate extends AbstractBinarySpatialMethod {
+public final class ST_Relate extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Relate";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
index d054ebf..70fcf22 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
@@ -29,7 +29,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_SRID extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_SRID extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_SRID";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
index 73d5074..466eda4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_SymDifference extends AbstractBinarySpatialMethod {
+public final class ST_SymDifference extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_SymDifference";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
index 4d0acfc..3d1e9e7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToGeomColl extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToGeomColl extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToGeomColl";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
index 9c1d21a..97f7446 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToLineString extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToLineString extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToLineString";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
index b8690e8..4c47a48 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToMultiLine extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToMultiLine extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToMultiLine";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
index 022ec9a..07f10ae 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToMultiPoint extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToMultiPoint extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToMultiPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
index 94eea09..bb8c7dc 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToMultiPolygon extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToMultiPolygon extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToMultiPolygon";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
index 37b3ec2..7cf63ae 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToPoint extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToPoint extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
index 69e4ae3..aa3ee32 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ToPolygon extends AbstractAccessorSpatialMethod<Geometry> {
+public final class ST_ToPolygon extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ToPolygon";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
index bfe48b6..6a688d6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Touches extends AbstractBinarySpatialMethod {
+public final class ST_Touches extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Touches";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Transform.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Transform.java
deleted file mode 100644
index c1b5624..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Transform.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.locationtech.jts.geom.Geometry;
-import java.text.ParseException;
-import org.opengis.filter.expression.Expression;
-import org.opengis.referencing.crs.CoordinateReferenceSystem;
-import org.opengis.referencing.operation.MathTransform;
-import org.opengis.referencing.operation.TransformException;
-import org.opengis.util.FactoryException;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_Transform. <br>
- * Return an ST_Geometry value transformed to the specified spatial reference system, considering z and m
- * coordinate values in the calculations and including them in the resultant geometry.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public final class ST_Transform extends AbstractAccessorSpatialMethod<Geometry> {
-
- public static final String NAME = "ST_Transform";
-
- public ST_Transform(Expression[] parameters) {
- super(parameters);
- }
-
- @Override
- protected int getMinParams() {
- return 2;
- }
-
- @Override
- protected int getMaxParams() {
- return 2;
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- @Override
- protected Class<Geometry> getExpectedClass() {
- return Geometry.class;
- }
- @Override
- public Object execute(Geometry geom, Object... params) throws ParseException {
- final int targetSRID = Integer.parseInt(params[1].toString());
- //TODO should use local database EPSG factory
- try{
- final CoordinateReferenceSystem baseCRS = JTS.findCoordinateReferenceSystem(geom);
- final CoordinateReferenceSystem targetCRS = CRS.decode("EPSG:"+targetSRID);
- final MathTransform trs = CRS.findMathTransform(baseCRS, targetCRS);
- return new OSerializableGeometry(JTS.transform(geom, trs));
- }catch(FactoryException ex){
- throw new OException(ex.getMessage(),ex);
- }catch(TransformException ex){
- throw new OException(ex.getMessage(),ex);
- }
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
index fe40494..c223190 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Union extends AbstractBinarySpatialMethod {
+public final class ST_Union extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Union";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
index 8dd0737..da76aab 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Within extends AbstractBinarySpatialMethod {
+public final class ST_Within extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Within";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
index 07e8756..d70f882 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
@@ -80,17 +80,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_MultiPolygon value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_BdMPolyFromWKB extends ST_XFromBinary {
+ public static final class BdMPoly extends ST_XFromBinary {
public static final String NAME = "ST_BdMPolyFromWKB";
- public ST_BdMPolyFromWKB(Expression[] parameters) {
+ public BdMPoly(Expression[] parameters) {
super(parameters);
}
@@ -130,17 +125,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_Polygon value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_Polygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_BdPolyFromWKB extends ST_XFromBinary {
+ public static final class BdPoly extends ST_XFromBinary {
public static final String NAME = "ST_BdPolyFromWKB";
- public ST_BdPolyFromWKB(Expression[] parameters) {
+ public BdPoly(Expression[] parameters) {
super(parameters);
}
@@ -179,17 +169,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_GeomCollection value which is transformed from a BINARY
* LARGE OBJECT value that represents the well-known binary representation
* of an ST_GeomCollection value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_GeomCollFromWKB extends ST_XFromBinary {
+ public static final class GeomColl extends ST_XFromBinary {
public static final String NAME = "ST_GeomCollFromWKB";
- public ST_GeomCollFromWKB(Expression[] parameters) {
+ public GeomColl(Expression[] parameters) {
super(parameters);
}
@@ -209,17 +194,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_Geometry value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_Geometry value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_GeomFromWKB extends ST_XFromBinary {
+ public static final class Geom extends ST_XFromBinary {
public static final String NAME = "ST_GeomFromWKB";
- public ST_GeomFromWKB(Expression[] parameters) {
+ public Geom(Expression[] parameters) {
super(parameters);
}
@@ -239,17 +219,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_LineString value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_LineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_LineFromWKB extends ST_XFromBinary {
+ public static final class Line extends ST_XFromBinary {
public static final String NAME = "ST_LineFromWKB";
- public ST_LineFromWKB(Expression[] parameters) {
+ public Line(Expression[] parameters) {
super(parameters);
}
@@ -269,17 +244,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_MultiLineString value which is transformed from a BINARY
* LARGE OBJECT value that represents the well-known binary representation
* of an ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MLineFromWKB extends ST_XFromBinary {
+ public static final class MLine extends ST_XFromBinary {
public static final String NAME = "ST_MLineFromWKB";
- public ST_MLineFromWKB(Expression[] parameters) {
+ public MLine(Expression[] parameters) {
super(parameters);
}
@@ -299,17 +269,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_MultiPoint value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_MultiPoint value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPointFromWKB extends ST_XFromBinary {
+ public static final class MPoint extends ST_XFromBinary {
public static final String NAME = "ST_MPointFromWKB";
- public ST_MPointFromWKB(Expression[] parameters) {
+ public MPoint(Expression[] parameters) {
super(parameters);
}
@@ -329,17 +294,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_MultiPolygon value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_MultiPolygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPolyFromWKB extends ST_XFromBinary {
+ public static final class MPoly extends ST_XFromBinary {
public static final String NAME = "ST_MPolyFromWKB";
- public ST_MPolyFromWKB(Expression[] parameters) {
+ public MPoly(Expression[] parameters) {
super(parameters);
}
@@ -359,17 +319,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_Point value which is transformed from a BINARY LARGE OBJECT
* value that represents the well-known binary representation of an ST_Point
* value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PointFromWKB extends ST_XFromBinary {
+ public static final class Point extends ST_XFromBinary {
public static final String NAME = "ST_PointFromWKB";
- public ST_PointFromWKB(Expression[] parameters) {
+ public Point(Expression[] parameters) {
super(parameters);
}
@@ -389,17 +344,12 @@ public abstract class ST_XFromBinary extends AbstractSpatialFunction {
* Return an ST_Polygon value which is transformed from a BINARY LARGE
* OBJECT value that represents the well-known binary representation of an
* ST_Polygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PolyFromWKB extends ST_XFromBinary {
+ public static final class Poly extends ST_XFromBinary {
public static final String NAME = "ST_PolyFromWKB";
- public ST_PolyFromWKB(Expression[] parameters) {
+ public Poly(Expression[] parameters) {
super(parameters);
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
index 223eb1e..953d487 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
@@ -52,6 +52,7 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
protected abstract Class getExpectedClass();
+ @Override
public String getSyntax() {
return getName() + " ( <gml> [,<srid>] )";
}
@@ -86,19 +87,14 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromGML. <br>
* Return an ST_GeomCollection value which is transformed from a CHARACTER
- * LARGE OBJECT value that represents the GML representationof an
+ * LARGE OBJECT value that represents the GML representation of an
* ST_GeomCollection value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_GeomCollFromGML extends ST_XFromGML {
+ public static final class GeomColl extends ST_XFromGML {
public static final String NAME = "ST_GeomCollFromGML";
- public ST_GeomCollFromGML(Expression[] parameters) {
+ public GeomColl(Expression[] parameters) {
super(parameters);
}
@@ -116,18 +112,13 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_GeomFromGML. <br>
* Return an ST_Geometry value which is transformed from a CHARACTER LARGE
- * OBJECT value that represents the GML representationof an ST_Geometry.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
+ * OBJECT value that represents the GML representation of an ST_Geometry. *
*/
- public static final class ST_GeomFromGML extends ST_XFromGML {
+ public static final class Geom extends ST_XFromGML {
public static final String NAME = "ST_GeomFromGML";
- public ST_GeomFromGML(Expression[] parameters) {
+ public Geom(Expression[] parameters) {
super(parameters);
}
@@ -147,17 +138,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* Return an ST_LineString value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the GML representation of an ST_LineString
* value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_LineFromGML extends ST_XFromGML {
+ public static final class Line extends ST_XFromGML {
public static final String NAME = "ST_LineFromGML";
- public ST_LineFromGML(Expression[] parameters) {
+ public Line(Expression[] parameters) {
super(parameters);
}
@@ -177,17 +163,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* Return an ST_MultiLineString value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the GML representation of an
* ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MLineFromGML extends ST_XFromGML {
+ public static final class MLine extends ST_XFromGML {
public static final String NAME = "ST_MLineFromGML";
- public ST_MLineFromGML(Expression[] parameters) {
+ public MLine(Expression[] parameters) {
super(parameters);
}
@@ -207,17 +188,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* Return an ST_MultiPoint value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the GML representation of an ST_MultiPoint
* value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPointFromGML extends ST_XFromGML {
+ public static final class MPoint extends ST_XFromGML {
public static final String NAME = "ST_MPointFromGML";
- public ST_MPointFromGML(Expression[] parameters) {
+ public MPoint(Expression[] parameters) {
super(parameters);
}
@@ -237,17 +213,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* Return an ST_MultiPolygon value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the GML representation of an
* ST_MultiPolygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPolyFromGML extends ST_XFromGML {
+ public static final class MPoly extends ST_XFromGML {
public static final String NAME = "ST_MPolyFromGML";
- public ST_MPolyFromGML(Expression[] parameters) {
+ public MPoly(Expression[] parameters) {
super(parameters);
}
@@ -266,17 +237,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* SQL/MM, ISO/IEC 13249-3:2011, ST_PointFromGML. <br>
* Return an ST_Point value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the GML representation of an ST_Point.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PointFromGML extends ST_XFromGML {
+ public static final class Point extends ST_XFromGML {
public static final String NAME = "ST_PointFromGML";
- public ST_PointFromGML(Expression[] parameters) {
+ public Point(Expression[] parameters) {
super(parameters);
}
@@ -296,17 +262,12 @@ public abstract class ST_XFromGML extends AbstractSpatialFunction {
* Return an ST_Polygon value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the GML representation of an ST_Polygon
* value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PolyFromGML extends ST_XFromGML {
+ public static final class Poly extends ST_XFromGML {
public static final String NAME = "ST_PolyFromGML";
- public ST_PolyFromGML(Expression[] parameters) {
+ public Poly(Expression[] parameters) {
super(parameters);
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
index 6928765..6ea0b02 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
@@ -53,6 +53,7 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
protected abstract Class getExpectedClass();
+ @Override
public String getSyntax() {
return getName() + " ( <text> [,<srid>] )";
}
@@ -79,17 +80,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_MultiPolygon value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the well-known text representation of
* an ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_BdMPolyFromText extends ST_XFromText {
+ public static final class BdMPoly extends ST_XFromText {
public static final String NAME = "ST_BdMPolyFromText";
- public ST_BdMPolyFromText(Expression[] parameters) {
+ public BdMPoly(Expression[] parameters) {
super(parameters);
}
@@ -129,17 +125,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_Polygon value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_BdPolyFromText extends ST_XFromText {
+ public static final class BdPoly extends ST_XFromText {
public static final String NAME = "ST_BdPolyFromText";
- public ST_BdPolyFromText(Expression[] parameters) {
+ public BdPoly(Expression[] parameters) {
super(parameters);
}
@@ -178,17 +169,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_GeomCollection value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the well-known text representation of
* an ST_GeomCollection value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_GeomCollFromText extends ST_XFromText {
+ public static final class GeomColl extends ST_XFromText {
public static final String NAME = "ST_GeomCollFromText";
- public ST_GeomCollFromText(Expression[] parameters) {
+ public GeomColl(Expression[] parameters) {
super(parameters);
}
@@ -208,17 +194,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_Geometry value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_Geometry value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_GeomFromText extends ST_XFromText {
+ public static final class Geom extends ST_XFromText {
public static final String NAME = "ST_GeomFromText";
- public ST_GeomFromText(Expression[] parameters) {
+ public Geom(Expression[] parameters) {
super(parameters);
}
@@ -238,17 +219,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_LineString value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_LineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_LineFromText extends ST_XFromText {
+ public static final class Line extends ST_XFromText {
public static final String NAME = "ST_LineFromText";
- public ST_LineFromText(Expression[] parameters) {
+ public Line(Expression[] parameters) {
super(parameters);
}
@@ -268,17 +244,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_MultiLineString value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the well-known text representation of
* an ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MLineFromText extends ST_XFromText {
+ public static final class MLine extends ST_XFromText {
public static final String NAME = "ST_MLineFromText";
- public ST_MLineFromText(Expression[] parameters) {
+ public MLine(Expression[] parameters) {
super(parameters);
}
@@ -298,17 +269,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_MultiPoint value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_MultiPoint value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPointFromText extends ST_XFromText {
+ public static final class MPoint extends ST_XFromText {
public static final String NAME = "ST_MPointFromText";
- public ST_MPointFromText(Expression[] parameters) {
+ public MPoint(Expression[] parameters) {
super(parameters);
}
@@ -329,17 +295,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_MultiPolygon value which is transformed from a CHARACTER
* LARGE OBJECT value that represents the well-known text representation of
* an ST_MultiPolygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_MPolyFromText extends ST_XFromText {
+ public static final class MPoly extends ST_XFromText {
public static final String NAME = "ST_MPolyFromText";
- public ST_MPolyFromText(Expression[] parameters) {
+ public MPoly(Expression[] parameters) {
super(parameters);
}
@@ -359,17 +320,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_Point value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_Point value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PointFromText extends ST_XFromText {
+ public static final class Point extends ST_XFromText {
public static final String NAME = "ST_PointFromText";
- public ST_PointFromText(Expression[] parameters) {
+ public Point(Expression[] parameters) {
super(parameters);
}
@@ -389,17 +345,12 @@ public abstract class ST_XFromText extends AbstractSpatialFunction {
* Return an ST_Polygon value which is transformed from a CHARACTER LARGE
* OBJECT value that represents the well-known text representation of an
* ST_Polygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
*/
- public static final class ST_PolyFromText extends ST_XFromText {
+ public static final class Poly extends ST_XFromText {
public static final String NAME = "ST_PolyFromText";
- public ST_PolyFromText(Expression[] parameters) {
+ public Poly(Expression[] parameters) {
super(parameters);
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialFunctionFactory.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialFunctionFactory.java
deleted file mode 100644
index 6b061e3..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialFunctionFactory.java
+++ /dev/null
@@ -1,123 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Map.Entry;
-import java.util.Set;
-import java.util.logging.Logger;
-import org.apache.sis.util.logging.Logging;
-
-/**
- * SQL/MM spatial function factory.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public class SpatialFunctionFactory implements OSQLFunctionFactory{
-
- static final Logger LOGGER = Logging.getLogger("org.geotoolkit.data.orientdb.function");
-
- private static final Map<String,Object> FUNCTIONS = new HashMap<String, Object>();
- private static final Map<String,Object> FUNCTIONS_UPPERCASE = new HashMap<String, Object>();
- static {
-
- //geometric constructor function
- FUNCTIONS.put(ST_Point.NAME, ST_Point.class);
- FUNCTIONS.put(ST_LineString.NAME, ST_LineString.class);
- FUNCTIONS.put(ST_Polygon.NAME, ST_Polygon.class);
- FUNCTIONS.put(ST_GeomCollection.NAME, ST_GeomCollection.class);
- FUNCTIONS.put(ST_MultiPoint.NAME, ST_MultiPoint.class);
- FUNCTIONS.put(ST_MultiLineString.NAME, ST_MultiLineString.class);
- FUNCTIONS.put(ST_MultiPolygon.NAME, ST_MultiPolygon.class);
-
- FUNCTIONS.put(ST_GeomFromText.NAME, ST_GeomFromText.class);
- FUNCTIONS.put(ST_PointFromText.NAME, ST_PointFromText.class);
- FUNCTIONS.put(ST_LineFromText.NAME, ST_LineFromText.class);
- FUNCTIONS.put(ST_PolyFromText.NAME, ST_PolyFromText.class);
- FUNCTIONS.put(ST_BdPolyFromText.NAME, ST_BdPolyFromText.class);
- FUNCTIONS.put(ST_GeomCollFromText.NAME, ST_GeomCollFromText.class);
- FUNCTIONS.put(ST_MPointFromText.NAME, ST_MPointFromText.class);
- FUNCTIONS.put(ST_MLineFromText.NAME, ST_MLineFromText.class);
- FUNCTIONS.put(ST_MPolyFromText.NAME, ST_MPolyFromText.class);
- FUNCTIONS.put(ST_BdMPolyFromText.NAME, ST_BdMPolyFromText.class);
-
- FUNCTIONS.put(ST_GeomFromWKB.NAME, ST_GeomFromWKB.class);
- FUNCTIONS.put(ST_PointFromWKB.NAME, ST_PointFromWKB.class);
- FUNCTIONS.put(ST_LineFromWKB.NAME, ST_LineFromWKB.class);
- FUNCTIONS.put(ST_PolyFromWKB.NAME, ST_PolyFromWKB.class);
- FUNCTIONS.put(ST_BdPolyFromWKB.NAME, ST_BdPolyFromWKB.class);
- FUNCTIONS.put(ST_GeomCollFromWKB.NAME, ST_GeomCollFromWKB.class);
- FUNCTIONS.put(ST_MPointFromWKB.NAME, ST_MPointFromWKB.class);
- FUNCTIONS.put(ST_MLineFromWKB.NAME, ST_MLineFromWKB.class);
- FUNCTIONS.put(ST_MPolyFromWKB.NAME, ST_MPolyFromWKB.class);
- FUNCTIONS.put(ST_BdMPolyFromWKB.NAME, ST_BdMPolyFromWKB.class);
-
- FUNCTIONS.put(ST_GeomFromGML.NAME, ST_GeomFromGML.class);
- FUNCTIONS.put(ST_PointFromGML.NAME, ST_PointFromGML.class);
- FUNCTIONS.put(ST_LineFromGML.NAME, ST_LineFromGML.class);
- FUNCTIONS.put(ST_PolyFromGML.NAME, ST_PolyFromGML.class);
- FUNCTIONS.put(ST_GeomCollFromGML.NAME, ST_GeomCollFromGML.class);
- FUNCTIONS.put(ST_MPointFromGML.NAME, ST_MPointFromGML.class);
- FUNCTIONS.put(ST_MLineFromGML.NAME, ST_MLineFromGML.class);
- FUNCTIONS.put(ST_MPolyFromGML.NAME, ST_MPolyFromGML.class);
-
- for(Entry<String,Object> entry : FUNCTIONS.entrySet()){
- FUNCTIONS_UPPERCASE.put(entry.getKey().toUpperCase(), entry.getValue());
- }
-
- }
-
- @Override
- public Set<String> getFunctionNames() {
- return FUNCTIONS.keySet();
- }
-
- @Override
- public OSQLFunction createFunction(String name) {
- name = name.toUpperCase();
- final Object obj = FUNCTIONS_UPPERCASE.get(name);
-
- if (obj == null) {
- throw new OCommandExecutionException("Unknowned function name :" + name);
- }
-
- if (obj instanceof OSQLFunction) {
- return (OSQLFunction) obj;
- } else {
- //it's a class
- final Class clazz = (Class) obj;
- try {
- return (OSQLFunction) clazz.newInstance();
- } catch (Exception e) {
- throw new OCommandExecutionException("Error in creation of function " + name
- + "(). Probably there is not an empty constructor or the constructor generates errors", e);
- }
- }
-
- }
-
- @Override
- public boolean hasFunction(String name) {
- name = name.toUpperCase();
- return FUNCTIONS_UPPERCASE.containsKey(name);
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialMethodFactory.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialMethodFactory.java
deleted file mode 100644
index 84dcf8e..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/SpatialMethodFactory.java
+++ /dev/null
@@ -1,150 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Set;
-
-/**
- * SQL/MM (ISO 13249-3) spatial methods.
- * TODO this should be OSQLMethods but methods can't use indexes so spatial queries would be slow.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public class SpatialMethodFactory implements OSQLMethodFactory {
-
- private static final Map<String,Object> METHODS = new HashMap<String, Object>();
- private static final Map<String,Object> METHODS_UPPERCASE = new HashMap<String, Object>();
-
- public SpatialMethodFactory() {
-
- //geometry methods
- METHODS.put(ST_GeometryType.NAME, ST_GeometryType.class);
- METHODS.put(ST_Dimension.NAME, ST_Dimension.class);
- METHODS.put(ST_CoordDim.NAME, ST_CoordDim.class);
- METHODS.put(ST_SRID.NAME, ST_SRID.class);
- METHODS.put(ST_Transform.NAME, ST_Transform.class);
- METHODS.put(ST_IsEmpty.NAME, ST_IsEmpty.class);
- METHODS.put(ST_IsSimple.NAME, ST_IsSimple.class);
- METHODS.put(ST_IsValid.NAME, ST_IsValid.class);
- METHODS.put(ST_Is3D.NAME, ST_Is3D.class);
- METHODS.put(ST_Boundary.NAME, ST_Boundary.class);
- METHODS.put(ST_Envelope.NAME, ST_Envelope.class);
- METHODS.put(ST_ConvexHull.NAME, ST_ConvexHull.class);
- METHODS.put(ST_Buffer.NAME, ST_Buffer.class);
- METHODS.put(ST_Intersection.NAME, ST_Intersection.class);
- METHODS.put(ST_Union.NAME, ST_Union.class);
- METHODS.put(ST_Difference.NAME, ST_Difference.class);
- METHODS.put(ST_SymDifference.NAME, ST_SymDifference.class);
- METHODS.put(ST_Distance.NAME, ST_Distance.class);
- METHODS.put(ST_Disjoint.NAME, ST_Disjoint.class);
- METHODS.put(ST_Equals.NAME, ST_Equals.class);
- METHODS.put(ST_Intersects.NAME, ST_Intersects.class);
- METHODS.put(ST_Relate.NAME, ST_Relate.class);
- METHODS.put(ST_Contains.NAME, ST_Contains.class);
- METHODS.put(ST_Crosses.NAME, ST_Crosses.class);
- METHODS.put(ST_Overlaps.NAME, ST_Overlaps.class);
- METHODS.put(ST_Touches.NAME, ST_Touches.class);
- METHODS.put(ST_Within.NAME, ST_Within.class);
- METHODS.put(ST_ToGeomColl.NAME, ST_ToGeomColl.class);
- METHODS.put(ST_ToLineString.NAME, ST_ToLineString.class);
- METHODS.put(ST_ToMultiLine.NAME, ST_ToMultiLine.class);
- METHODS.put(ST_ToMultiPoint.NAME, ST_ToMultiPoint.class);
- METHODS.put(ST_ToMultiPolygon.NAME, ST_ToMultiPolygon.class);
- METHODS.put(ST_ToPoint.NAME, ST_ToPoint.class);
- METHODS.put(ST_ToPolygon.NAME, ST_ToPolygon.class);
- METHODS.put(ST_AsText.NAME, ST_AsText.class);
- METHODS.put(ST_AsBinary.NAME, ST_AsBinary.class);
- METHODS.put(ST_AsGML.NAME, ST_AsGML.class);
-
- //point methods
- METHODS.put(Point_ST_X.NAME, Point_ST_X.class);
- METHODS.put(Point_ST_Y.NAME, Point_ST_Y.class);
- METHODS.put(Point_ST_Z.NAME, Point_ST_Z.class);
- METHODS.put(Point_ST_ExplicitPoint.NAME, Point_ST_ExplicitPoint.class);
-
- //curve methods
- METHODS.put(Curve_ST_Length.NAME, Curve_ST_Length.class);
- METHODS.put(Curve_ST_StartPoint.NAME, Curve_ST_StartPoint.class);
- METHODS.put(Curve_ST_EndPoint.NAME, Curve_ST_EndPoint.class);
- METHODS.put(Curve_ST_IsClosed.NAME, Curve_ST_IsClosed.class);
- METHODS.put(Curve_ST_IsRing.NAME, Curve_ST_IsRing.class);
-
- //line methods
- METHODS.put(Line_ST_NumPoints.NAME, Line_ST_NumPoints.class);
- METHODS.put(Line_ST_PointN.NAME, Line_ST_PointN.class);
-
- //surface methods
- METHODS.put(Surface_ST_Area.NAME, Surface_ST_Area.class);
- METHODS.put(Surface_ST_Centroid.NAME, Surface_ST_Centroid.class);
- METHODS.put(Surface_ST_Perimeter.NAME, Surface_ST_Perimeter.class);
- METHODS.put(Surface_ST_PointOnSurface.NAME, Surface_ST_PointOnSurface.class);
-
- //curvepolygon methods
- METHODS.put(CurvePolygon_ST_NumInteriorRings.NAME, CurvePolygon_ST_NumInteriorRings.class);
- METHODS.put(CurvePolygon_ST_InteriorRingN.NAME, CurvePolygon_ST_InteriorRingN.class);
- METHODS.put(CurvePolygon_ST_ExteriorRing.NAME, CurvePolygon_ST_ExteriorRing.class);
-
- //geomcollection methods
- METHODS.put(GeomColl_ST_NumGeometries.NAME, GeomColl_ST_NumGeometries.class);
- METHODS.put(GeomColl_ST_GeometryN.NAME, GeomColl_ST_GeometryN.class);
-
-
- for(Map.Entry<String,Object> entry : METHODS.entrySet()){
- METHODS_UPPERCASE.put(entry.getKey().toUpperCase(), entry.getValue());
- }
- }
-
- @Override
- public boolean hasMethod(String name) {
- name = name.toUpperCase();
- return METHODS_UPPERCASE.containsKey(name);
- }
-
- @Override
- public Set<String> getMethodNames() {
- return METHODS.keySet();
- }
-
- @Override
- public OSQLMethod createMethod(String name) throws OCommandExecutionException {
- name = name.toUpperCase();
- final Object obj = METHODS_UPPERCASE.get(name);
-
- if (obj == null) {
- throw new OCommandExecutionException("Unknowned method name :" + name);
- }
-
- if (obj instanceof OSQLMethod) {
- return (OSQLMethod) obj;
- } else {
- //it's a class
- final Class clazz = (Class) obj;
- try {
- return (OSQLMethod) clazz.newInstance();
- } catch (Exception e) {
- throw new OCommandExecutionException("Error in creation of method " + name
- + "(). Probably there is not an empty constructor or the constructor generates errors", e);
- }
- }
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java
index 7830971..a02a6b0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Area.java
@@ -31,7 +31,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Area extends AbstractAccessorSpatialMethod<Geometry> {
+public final class Surface_ST_Area extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Area";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
index 122855e..4ad77b0 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Centroid.java
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Centroid extends AbstractAccessorSpatialMethod<Geometry> {
+public final class Surface_ST_Centroid extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Centroid";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java
index 7331be9..436d8ce 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_Perimeter.java
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_Perimeter extends AbstractAccessorSpatialMethod<Geometry> {
+public final class Surface_ST_Perimeter extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Perimeter";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java
index 76ba16b..6f021f7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/Surface_ST_PointOnSurface.java
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class Surface_ST_PointOnSurface extends AbstractAccessorSpatialMethod<Geometry> {
+public final class Surface_ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_PointOnSurface";
[sis] 03/03: SQL/MM : cleaning code
Posted by js...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
jsorel pushed a commit to branch feat/sqlmm
in repository https://gitbox.apache.org/repos/asf/sis.git
commit 1dac05559ab7a2eb0135d6d9dd8864c61d888878
Author: jsorel <jo...@geomatys.com>
AuthorDate: Wed Nov 27 12:22:49 2019 +0100
SQL/MM : cleaning code
---
.../AbstractAccessorSpatialFunction.java | 5 +-
.../{todo => }/AbstractBinarySpatialFunction.java | 2 +-
.../sqlmm/{todo => }/AbstractGeomConstructor.java | 9 ++-
.../sqlmm/{todo => }/AbstractSpatialFunction.java | 47 ++++++++++++-
.../apache/sis/internal/filter/sqlmm/SQLMM.java | 55 ---------------
.../internal/filter/sqlmm/{todo => }/ST_Area.java | 4 +-
.../filter/sqlmm/{todo => }/ST_AsBinary.java | 8 +--
.../internal/filter/sqlmm/{todo => }/ST_AsGML.java | 4 +-
.../filter/sqlmm/{todo => }/ST_AsText.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Boundary.java | 10 +--
.../sis/internal/filter/sqlmm/ST_Buffer.java | 9 +++
.../sis/internal/filter/sqlmm/ST_Centroid.java | 12 ++++
.../filter/sqlmm/{todo => }/ST_Contains.java | 4 +-
.../filter/sqlmm/{todo => }/ST_ConvexHull.java | 10 +--
.../filter/sqlmm/{todo => }/ST_CoordDim.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Crosses.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Difference.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Dimension.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Disjoint.java | 2 +-
.../filter/sqlmm/{todo => }/ST_Distance.java | 4 +-
.../filter/sqlmm/{todo => }/ST_EndPoint.java | 9 ++-
.../filter/sqlmm/{todo => }/ST_Equals.java | 4 +-
.../filter/sqlmm/{todo => }/ST_ExplicitPoint.java | 4 +-
.../filter/sqlmm/{todo => }/ST_ExteriorRing.java | 10 +--
.../filter/sqlmm/{todo => }/ST_GeomCollection.java | 11 +--
.../filter/sqlmm/{todo => }/ST_GeometryN.java | 10 +--
.../filter/sqlmm/{todo => }/ST_GeometryType.java | 8 +--
.../filter/sqlmm/{todo => }/ST_InteriorRingN.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Intersection.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Intersects.java | 7 +-
.../internal/filter/sqlmm/{todo => }/ST_Is3D.java | 7 +-
.../filter/sqlmm/{todo => }/ST_IsClosed.java | 4 +-
.../filter/sqlmm/{todo => }/ST_IsEmpty.java | 4 +-
.../filter/sqlmm/{todo => }/ST_IsRing.java | 4 +-
.../filter/sqlmm/{todo => }/ST_IsSimple.java | 4 +-
.../filter/sqlmm/{todo => }/ST_IsValid.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Length.java | 4 +-
.../sqlmm/{todo => }/ST_MultiLineString.java | 11 +--
.../filter/sqlmm/{todo => }/ST_MultiPoint.java | 11 +--
.../filter/sqlmm/{todo => }/ST_MultiPolygon.java | 11 +--
.../filter/sqlmm/{todo => }/ST_NumGeometries.java | 4 +-
.../sqlmm/{todo => }/ST_NumInteriorRings.java | 4 +-
.../filter/sqlmm/{todo => }/ST_NumPoints.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Overlaps.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Perimeter.java | 4 +-
.../filter/sqlmm/{todo => }/ST_PointN.java | 10 +--
.../filter/sqlmm/{todo => }/ST_PointOnSurface.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Polygon.java | 4 +-
.../filter/sqlmm/{todo => }/ST_Relate.java | 4 +-
.../internal/filter/sqlmm/{todo => }/ST_SRID.java | 4 +-
.../filter/sqlmm/{todo => }/ST_StartPoint.java | 9 ++-
.../filter/sqlmm/{todo => }/ST_SymDifference.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Touches.java | 4 +-
.../internal/filter/sqlmm/{todo => }/ST_Union.java | 10 +--
.../filter/sqlmm/{todo => }/ST_Within.java | 4 +-
.../sis/internal/filter/sqlmm/{todo => }/ST_X.java | 4 +-
.../filter/sqlmm/{todo => }/ST_XFromBinary.java | 4 +-
.../filter/sqlmm/{todo => }/ST_XFromGML.java | 4 +-
.../filter/sqlmm/{todo => }/ST_XFromText.java | 4 +-
.../sis/internal/filter/sqlmm/{todo => }/ST_Y.java | 4 +-
.../sis/internal/filter/sqlmm/{todo => }/ST_Z.java | 4 +-
.../sis/internal/filter/sqlmm/todo/ST_Buffer.java | 78 ----------------------
.../internal/filter/sqlmm/todo/ST_Centroid.java | 69 -------------------
.../internal/filter/sqlmm/todo/ST_Envelope.java | 66 ------------------
.../internal/filter/sqlmm/todo/ST_LineString.java | 10 +--
.../sis/internal/filter/sqlmm/todo/ST_Point.java | 1 +
.../internal/filter/sqlmm/todo/ST_ToGeomColl.java | 1 +
.../filter/sqlmm/todo/ST_ToLineString.java | 1 +
.../internal/filter/sqlmm/todo/ST_ToMultiLine.java | 1 +
.../filter/sqlmm/todo/ST_ToMultiPoint.java | 1 +
.../filter/sqlmm/todo/ST_ToMultiPolygon.java | 1 +
.../sis/internal/filter/sqlmm/todo/ST_ToPoint.java | 1 +
.../internal/filter/sqlmm/todo/ST_ToPolygon.java | 1 +
73 files changed, 252 insertions(+), 450 deletions(-)
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractAccessorSpatialFunction.java
similarity index 95%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractAccessorSpatialFunction.java
index 2c4963a..202f66d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractAccessorSpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractAccessorSpatialFunction.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -25,6 +25,9 @@ import org.opengis.filter.expression.Expression;
* Spatial methods accessing properties of a geometry.
*
* @author Johann Sorel (Geomatys)
+ * @version 2.0
+ * @since 2.0
+ * @module
*/
public abstract class AbstractAccessorSpatialFunction<T extends Geometry> extends AbstractSpatialFunction {
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractBinarySpatialFunction.java
similarity index 98%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractBinarySpatialFunction.java
index 773db54..6ee163e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractBinarySpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractBinarySpatialFunction.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomConstructor.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractGeomConstructor.java
similarity index 84%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomConstructor.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractGeomConstructor.java
index 2b0e111..dec365d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomConstructor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractGeomConstructor.java
@@ -14,10 +14,13 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.apache.sis.internal.filter.FilterGeometryUtils;
import org.locationtech.jts.geom.Geometry;
+import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -68,4 +71,8 @@ public abstract class AbstractGeomConstructor extends AbstractSpatialFunction {
return geom;
}
+ @Override
+ public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
+ return addTo.addAttribute(getExpectedClass()).setName(getName());
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractSpatialFunction.java
similarity index 51%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractSpatialFunction.java
index a33913c..e6e98f5 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractSpatialFunction.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/AbstractSpatialFunction.java
@@ -14,22 +14,32 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
+import java.util.Map;
+import org.apache.sis.feature.Features;
+import org.apache.sis.feature.builder.FeatureTypeBuilder;
+import org.apache.sis.internal.feature.AttributeConvention;
import org.apache.sis.internal.feature.FeatureExpression;
+import org.apache.sis.internal.feature.jts.JTS;
import org.apache.sis.internal.filter.NamedFunction;
+import org.locationtech.jts.geom.Geometry;
+import org.opengis.feature.AttributeType;
+import org.opengis.feature.FeatureType;
+import org.opengis.feature.PropertyType;
import org.opengis.filter.expression.Expression;
+import org.opengis.referencing.crs.CoordinateReferenceSystem;
/**
*
* @author Johann Sorel (Geomatys)
* @version 2.0
- * @since 2.0
+ * @since 2.0
* @module
*/
public abstract class AbstractSpatialFunction extends NamedFunction implements FeatureExpression {
- public AbstractSpatialFunction(Expression[] parameters){
+ public AbstractSpatialFunction(Expression[] parameters) {
super(parameters);
}
@@ -69,4 +79,35 @@ public abstract class AbstractSpatialFunction extends NamedFunction implements F
return sb.toString();
}
+
+ protected static CoordinateReferenceSystem expectedCrs(FeatureType type, Expression exp) {
+
+ final PropertyType expressionType = FeatureExpression.expectedType(exp, type, new FeatureTypeBuilder()).build();
+ final AttributeType<?> attr = Features.castOrUnwrap(expressionType).orElse(null);
+ if (attr == null) {
+ return null;
+ }
+
+ final AttributeType<CoordinateReferenceSystem> crsCharacteristic = (AttributeType<CoordinateReferenceSystem>)
+ attr.characteristics().get(AttributeConvention.CRS_CHARACTERISTIC);
+ return crsCharacteristic == null ? null : crsCharacteristic.getDefaultValue();
+ }
+
+ protected static void copyCrs(Geometry source, Geometry target) {
+ if (source == null || target == null) return;
+
+ final Object userData = source.getUserData();
+ CoordinateReferenceSystem crs = null;
+ if (userData instanceof CoordinateReferenceSystem) {
+ crs = (CoordinateReferenceSystem) userData;
+ } else if (userData instanceof Map<?,?>) {
+ final Map<?,?> map = (Map<?,?>) userData;
+ final Object value = map.get(JTS.CRS_KEY);
+ if (value instanceof CoordinateReferenceSystem) {
+ crs = (CoordinateReferenceSystem) value;
+ }
+ }
+ target.setUserData(crs);
+ target.setSRID(source.getSRID());
+ }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
index bf11527..e59ed55 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/SQLMM.java
@@ -23,51 +23,6 @@ import org.opengis.filter.expression.Function;
import org.opengis.util.FactoryException;
import org.apache.sis.internal.feature.FunctionRegister;
import org.apache.sis.internal.feature.Resources;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_ExteriorRing;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_InteriorRingN;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_NumInteriorRings;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_EndPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_IsClosed;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_IsRing;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Length;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_StartPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_GeometryN;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_NumGeometries;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_NumPoints;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_PointN;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_ExplicitPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_X;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Y;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Z;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_AsBinary;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_AsGML;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_AsText;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Boundary;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Contains;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_ConvexHull;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_CoordDim;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Crosses;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Difference;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Dimension;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Disjoint;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Distance;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Equals;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_GeomCollection;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_GeometryType;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Intersection;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Intersects;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Is3D;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_IsEmpty;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_IsSimple;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_IsValid;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiLineString;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiPoint;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_MultiPolygon;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Overlaps;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Polygon;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Relate;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_SRID;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_SymDifference;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToGeomColl;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToLineString;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiLine;
@@ -75,16 +30,6 @@ import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiPoint;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToMultiPolygon;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToPoint;
import org.apache.sis.internal.filter.sqlmm.todo.ST_ToPolygon;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Touches;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Union;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Within;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromBinary;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromGML;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_XFromText;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Area;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Centroid;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_Perimeter;
-import org.apache.sis.internal.filter.sqlmm.todo.ST_PointOnSurface;
import org.apache.sis.util.ArgumentChecks;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Area.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Area.java
index ddf3463..4af564b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Area.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Area.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Area extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Area extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Area";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsBinary.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsBinary.java
index a8801d2..2fcfb94 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsBinary.java
@@ -14,10 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
-import org.locationtech.jts.io.WKBWriter;
import java.text.ParseException;
import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
@@ -34,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_AsBinary extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_AsBinary extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsBinary";
@@ -54,8 +53,7 @@ public final class ST_AsBinary extends AbstractAccessorSpatialFunction<Geometry>
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
- final WKBWriter writer = FilterGeometryUtils.getWKBWriter();
- return writer.write(geom);
+ return FilterGeometryUtils.getWKBWriter().write(geom);
}
@Override
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsGML.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsGML.java
index 66b267d..94cf609 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsGML.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_AsGML extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_AsGML extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsGML";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsText.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsText.java
index e839d1b..64de78b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_AsText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_AsText.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.WKTWriter;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_AsText extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_AsText extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_AsText";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Boundary.java
similarity index 86%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Boundary.java
index 54501a2..f700498 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Boundary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Boundary.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Boundary extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Boundary extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Boundary";
@@ -54,13 +54,15 @@ public final class ST_Boundary extends AbstractAccessorSpatialFunction<Geometry>
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
final Geometry bound = geom.getBoundary();
- bound.setSRID(geom.getSRID());
+ copyCrs(geom, bound);
return bound;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Buffer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Buffer.java
index b84c18b..b24c25d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Buffer.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Buffer.java
@@ -28,8 +28,17 @@ import org.opengis.filter.expression.Expression;
/**
+ * SQL/MM, ISO/IEC 13249-3:2011, ST_Buffer. <br>
+ * <p>
+ * Return the ST_Geometry value that represents all points whose distance from any point of an ST_Geometry
+ * value is less than or equal to a specified distance, ignoring z and m coordinate values in the calculations and
+ * not including them in the resultant geometry.
+ * </p>
+ *
+ * <p>
* An expression which computes a geometry buffer.
* This expression expects two arguments:
+ * </p>
*
* <ol class="verbose">
* <li>An expression returning a geometry object. The evaluated value shall be an instance of
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Centroid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Centroid.java
index 525b04f..f2f2b3b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Centroid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Centroid.java
@@ -28,8 +28,20 @@ import org.opengis.filter.expression.Expression;
/**
+ * SQL/MM, ISO/IEC 13249-3:2011, ST_Centroid. <br>
+ * <p>
+ * Return the 2D ST_Point value that is the mathematical centroid of the ST_Surface value, ignoring z and m
+ * coordinate values in the calculations and not including them in the resultant geometry.
+ * </p>
+ *
+ * <p>
+ * This class should be for all surface types, but JTS only has Polygon and MultiPolygon.
+ * </p>
+ *
+ * <p>
* An expression which computes the centroid of a geometry.
* This expression expects one argument:
+ * </p>
*
* <ol class="verbose">
* <li>An expression returning a geometry object. The evaluated value shall be an instance of
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Contains.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Contains.java
index 9f83dea..52ebb89 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Contains.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Contains.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Contains extends AbstractBinarySpatialFunction {
+final class ST_Contains extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Contains";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ConvexHull.java
similarity index 86%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ConvexHull.java
index baa32da..f23d0b9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ConvexHull.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ConvexHull.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ConvexHull extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_ConvexHull extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_ConvexHull";
@@ -54,13 +54,15 @@ public final class ST_ConvexHull extends AbstractAccessorSpatialFunction<Geometr
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
final Geometry res = geom.convexHull();
- res.setSRID(geom.getSRID());
+ copyCrs(geom, res);
return res;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_CoordDim.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_CoordDim.java
index 39ecf9b..3b4927b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_CoordDim.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_CoordDim.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_CoordDim extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_CoordDim extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_CoordDim";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Crosses.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Crosses.java
index 957b709..f42f6d9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Crosses.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Crosses.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Crosses extends AbstractBinarySpatialFunction {
+final class ST_Crosses extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Crosses";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Difference.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Difference.java
index f1d0c9c..1a1cf6f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Difference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Difference.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Difference extends AbstractBinarySpatialFunction {
+final class ST_Difference extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Difference";
@@ -49,13 +49,15 @@ public final class ST_Difference extends AbstractBinarySpatialFunction {
@Override
public Object execute(Geometry left, Geometry right, Object... params) throws ParseException {
final Geometry res = left.difference(right);
- res.setSRID(left.getSRID());
+ copyCrs(left, res);
return res;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Dimension.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Dimension.java
index f197595..772b9e1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Dimension.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Dimension.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Dimension extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Dimension extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Dimension";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Disjoint.java
similarity index 97%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Disjoint.java
index ec6116e..ac69e1a 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Disjoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Disjoint.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Distance.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Distance.java
index 5ab2c7c..d69bb48 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Distance.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Distance.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Distance extends AbstractBinarySpatialFunction {
+final class ST_Distance extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Distance";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_EndPoint.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_EndPoint.java
index fe176b1..43ff1ce 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_EndPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_EndPoint.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_EndPoint extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_EndPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_EndPoint";
@@ -55,12 +55,15 @@ public final class ST_EndPoint extends AbstractAccessorSpatialFunction<LineStrin
@Override
public Object execute(LineString geom, Object... params) throws ParseException {
final Point pt = geom.getEndPoint();
+ copyCrs(geom, pt);
return pt;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Point.class).setName(NAME);
+ return addTo.addAttribute(Point.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Equals.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Equals.java
index 842fbd1..ccc35b7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Equals.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Equals.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Equals extends AbstractBinarySpatialFunction {
+final class ST_Equals extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Equals";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExplicitPoint.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExplicitPoint.java
index e45e474..acb7a57 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExplicitPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExplicitPoint.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Point;
@@ -35,7 +35,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ExplicitPoint extends AbstractAccessorSpatialFunction<Point> {
+final class ST_ExplicitPoint extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_ExplicitPoint";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExteriorRing.java
similarity index 86%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExteriorRing.java
index 4dd6631..cd57969 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ExteriorRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_ExteriorRing.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Polygon;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polygon> {
+final class ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_ExteriorRing";
@@ -54,12 +54,14 @@ public final class ST_ExteriorRing extends AbstractAccessorSpatialFunction<Polyg
@Override
public Object execute(Polygon geom, Object... params) throws ParseException {
final LineString ring = geom.getExteriorRing();
- ring.setSRID(geom.getSRID());
+ copyCrs(geom, ring);
return ring;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(LineString.class).setName(NAME);
+ return addTo.addAttribute(LineString.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeomCollection.java
similarity index 74%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeomCollection.java
index f5169b9..c41f9c9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollection.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeomCollection.java
@@ -14,12 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.GeometryCollection;
-import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,7 +27,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_GeomCollection extends AbstractGeomConstructor {
+final class ST_GeomCollection extends AbstractGeomConstructor {
public static final String NAME = "ST_GeomCollection";
@@ -48,8 +45,4 @@ public final class ST_GeomCollection extends AbstractGeomConstructor {
return GeometryCollection.class;
}
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(GeometryCollection.class).setName(NAME);
- }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryN.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryN.java
index 1705733..d35a51f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryN.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_GeometryN";
@@ -65,13 +65,15 @@ public final class ST_GeometryN extends AbstractAccessorSpatialFunction<Geometry
public Object execute(Geometry geom, Object... params) throws ParseException {
final int index = Integer.parseInt(params[1].toString());
final Geometry sub = geom.getGeometryN(index-1);
- sub.setSRID(geom.getSRID());
+ copyCrs(geom, sub);
return sub;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryType.java
similarity index 92%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryType.java
index dceffe1..9d3105f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeometryType.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_GeometryType.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
@@ -42,7 +42,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_GeometryType extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_GeometryType extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_GeometryType";
@@ -74,8 +74,8 @@ public final class ST_GeometryType extends AbstractAccessorSpatialFunction<Geome
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
- for(Entry<Class,String> entry : TYPES.entrySet()){
- if(entry.getKey().isInstance(geom)){
+ for (Entry<Class,String> entry : TYPES.entrySet()) {
+ if (entry.getKey().isInstance(geom)) {
return entry.getValue();
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_InteriorRingN.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_InteriorRingN.java
index 0050168..162525b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_InteriorRingN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_InteriorRingN.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Polygon;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_InteriorRingN extends AbstractAccessorSpatialFunction<Polygon> {
+final class ST_InteriorRingN extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_InteriorRingN";
@@ -55,12 +55,14 @@ public final class ST_InteriorRingN extends AbstractAccessorSpatialFunction<Poly
public Object execute(Polygon geom, Object... params) throws ParseException {
final int index = Integer.parseInt(params[1].toString());
final LineString ring = geom.getInteriorRingN(index-1);
- ring.setSRID(geom.getSRID());
+ copyCrs(geom, ring);
return ring;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(LineString.class).setName(NAME);
+ return addTo.addAttribute(LineString.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersection.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersection.java
index 5bed5d5..c8d43a7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersection.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersection.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Intersection extends AbstractBinarySpatialFunction {
+final class ST_Intersection extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Intersection";
@@ -49,13 +49,15 @@ public final class ST_Intersection extends AbstractBinarySpatialFunction {
@Override
public Object execute(Geometry left, Geometry right, Object... params) throws ParseException {
final Geometry res = left.intersection(right);
- res.setSRID(left.getSRID());
+ copyCrs(left, res);
return res;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersects.java
similarity index 91%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersects.java
index 5588af2..c814c3d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Intersects.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Intersects.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -26,15 +26,14 @@ import org.opengis.filter.expression.Expression;
/**
* SQL/MM, ISO/IEC 13249-3:2011, ST_Intersects. <br>
* Test if an ST_Geometry value spatially 2D intersects another ST_Geometry value, ignoring z and m
-coordinate values in the calculations.
-
+ * coordinate values in the calculations.
*
* @author Johann Sorel (Geomatys)
* @version 2.0
* @since 2.0
* @module
*/
-public final class ST_Intersects extends AbstractBinarySpatialFunction {
+final class ST_Intersects extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Intersects";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Is3D.java
similarity index 92%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Is3D.java
index 6383e54..8f746d6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Is3D.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Is3D.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Is3D extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Is3D extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Is3D";
@@ -54,10 +54,9 @@ public final class ST_Is3D extends AbstractAccessorSpatialFunction<Geometry> {
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
final Coordinate c = geom.getCoordinate();
- if(c != null){
+ if (c != null) {
return !Double.isNaN(c.z);
}
-
return null;
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsClosed.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsClosed.java
index 6cea4a3..9d687ef 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsClosed.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsClosed.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsClosed extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_IsClosed extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsClosed";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsEmpty.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsEmpty.java
index 0cb3ad7..553e3c7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsEmpty.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsEmpty.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsEmpty extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_IsEmpty extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsEmpty";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsRing.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsRing.java
index 509189c..3410f17 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsRing.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsRing.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsRing extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_IsRing extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_IsRing";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsSimple.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsSimple.java
index 1829d26..02f683f 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsSimple.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsSimple.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsSimple extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_IsSimple extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsSimple";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsValid.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsValid.java
index 66098df..6fa6c83 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_IsValid.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_IsValid.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_IsValid extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_IsValid extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_IsValid";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Length.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Length.java
index efeb4d8..f4a498b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Length.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Length.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Length extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Length extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Length";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiLineString.java
similarity index 74%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiLineString.java
index 003b81f..0b3c08e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiLineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiLineString.java
@@ -14,12 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiLineString;
-import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,7 +27,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_MultiLineString extends AbstractGeomConstructor{
+final class ST_MultiLineString extends AbstractGeomConstructor{
public static final String NAME = "ST_MultiLineString";
@@ -48,8 +45,4 @@ public final class ST_MultiLineString extends AbstractGeomConstructor{
return MultiLineString.class;
}
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(MultiLineString.class).setName(NAME);
- }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPoint.java
similarity index 74%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPoint.java
index 9ad8f16..666d5cb 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPoint.java
@@ -14,12 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiPoint;
-import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,7 +27,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_MultiPoint extends AbstractGeomConstructor{
+final class ST_MultiPoint extends AbstractGeomConstructor {
public static final String NAME = "ST_MultiPoint";
@@ -48,8 +45,4 @@ public final class ST_MultiPoint extends AbstractGeomConstructor{
return MultiPoint.class;
}
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(MultiPoint.class).setName(NAME);
- }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPolygon.java
similarity index 74%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPolygon.java
index c42b40e..fcf1910 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MultiPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_MultiPolygon.java
@@ -14,12 +14,9 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
import org.locationtech.jts.geom.MultiPolygon;
-import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,7 +27,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_MultiPolygon extends AbstractGeomConstructor{
+final class ST_MultiPolygon extends AbstractGeomConstructor{
public static final String NAME = "ST_MultiPolygon";
@@ -48,8 +45,4 @@ public final class ST_MultiPolygon extends AbstractGeomConstructor{
return MultiPolygon.class;
}
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(MultiPolygon.class).setName(NAME);
- }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumGeometries.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumGeometries.java
index 19a0f99..ce756c4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumGeometries.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumGeometries.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_NumGeometries extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_NumGeometries extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_NumGeometries";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumInteriorRings.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumInteriorRings.java
index 03ff827..2deb6d2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumInteriorRings.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumInteriorRings.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;
@@ -34,7 +34,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_NumInteriorRings extends AbstractAccessorSpatialFunction<Polygon> {
+final class ST_NumInteriorRings extends AbstractAccessorSpatialFunction<Polygon> {
public static final String NAME = "ST_NumInteriorRings";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumPoints.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumPoints.java
index 1bd3fc0..1db8341 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_NumPoints.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_NumPoints.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_NumPoints extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_NumPoints extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_NumPoints";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Overlaps.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Overlaps.java
index 4e5af3c..1691931 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Overlaps.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Overlaps.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Overlaps extends AbstractBinarySpatialFunction {
+final class ST_Overlaps extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Overlaps";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Perimeter.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Perimeter.java
index e5b6055..583960e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Perimeter.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Perimeter.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -35,7 +35,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Perimeter extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_Perimeter extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_Perimeter";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointN.java
similarity index 88%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointN.java
index dcb3cc6..aec35ee 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointN.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointN.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_PointN extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_PointN extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_PointN";
@@ -65,13 +65,15 @@ public final class ST_PointN extends AbstractAccessorSpatialFunction<LineString>
public Object execute(LineString geom, Object... params) throws ParseException {
final int index = Integer.parseInt(params[1].toString());
final Point pt = geom.getPointN(index-1);
- pt.setSRID(geom.getSRID());
+ copyCrs(geom, pt);
return pt;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Point.class).setName(NAME);
+ return addTo.addAttribute(Point.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointOnSurface.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointOnSurface.java
index d3984d9..d683875 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointOnSurface.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_PointOnSurface.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -36,7 +36,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_PointOnSurface";
@@ -57,13 +57,15 @@ public final class ST_PointOnSurface extends AbstractAccessorSpatialFunction<Geo
@Override
public Object execute(Geometry geom, Object... params) throws ParseException {
final Geometry pt = geom.getInteriorPoint();
- pt.setSRID(geom.getSRID());
+ copyCrs(geom, pt);
return pt;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Point.class).setName(NAME);
+ return addTo.addAttribute(Point.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Polygon.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Polygon.java
index d3c80a8..4cc0c6d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Polygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Polygon.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
@@ -30,7 +30,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Polygon extends AbstractGeomConstructor{
+final class ST_Polygon extends AbstractGeomConstructor {
public static final String NAME = "ST_Polygon";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Relate.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Relate.java
index 440733d..71b6202 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Relate.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Relate.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Relate extends AbstractBinarySpatialFunction {
+final class ST_Relate extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Relate";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SRID.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SRID.java
index b7cb29f..29b822e 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SRID.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SRID.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_SRID extends AbstractAccessorSpatialFunction<Geometry> {
+final class ST_SRID extends AbstractAccessorSpatialFunction<Geometry> {
public static final String NAME = "ST_SRID";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_StartPoint.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_StartPoint.java
index 0d2c365..039136b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_StartPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_StartPoint.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.LineString;
import org.locationtech.jts.geom.Point;
@@ -36,7 +36,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_StartPoint extends AbstractAccessorSpatialFunction<LineString> {
+final class ST_StartPoint extends AbstractAccessorSpatialFunction<LineString> {
public static final String NAME = "ST_StartPoint";
@@ -57,12 +57,15 @@ public final class ST_StartPoint extends AbstractAccessorSpatialFunction<LineStr
@Override
public Object execute(LineString geom, Object... params) throws ParseException {
final Point pt = geom.getStartPoint();
+ copyCrs(geom, pt);
return pt;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Point.class).setName(NAME);
+ return addTo.addAttribute(Point.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SymDifference.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SymDifference.java
index 981f540..3c49b1b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_SymDifference.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_SymDifference.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_SymDifference extends AbstractBinarySpatialFunction {
+final class ST_SymDifference extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_SymDifference";
@@ -49,13 +49,15 @@ public final class ST_SymDifference extends AbstractBinarySpatialFunction {
@Override
public Object execute(Geometry left, Geometry right, Object... params) throws ParseException {
final Geometry res = left.symDifference(right);
- res.setSRID(left.getSRID());
+ copyCrs(left, res);
return res;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Touches.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Touches.java
index 495c937..da02b37 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Touches.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Touches.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Touches extends AbstractBinarySpatialFunction {
+final class ST_Touches extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Touches";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Union.java
similarity index 87%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Union.java
index 4d88999..6d678d7 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Union.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Union.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Union extends AbstractBinarySpatialFunction {
+final class ST_Union extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Union";
@@ -49,13 +49,15 @@ public final class ST_Union extends AbstractBinarySpatialFunction {
@Override
public Object execute(Geometry left, Geometry right, Object... params) throws ParseException {
final Geometry res = left.union(right);
- res.setSRID(left.getSRID());
+ copyCrs(left, res);
return res;
}
@Override
public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
+ return addTo.addAttribute(Geometry.class)
+ .setCRS(expectedCrs(valueType, parameters.get(0)))
+ .setName(NAME);
}
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Within.java
similarity index 94%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Within.java
index c02e972..1578ee4 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Within.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Within.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Geometry;
import java.text.ParseException;
@@ -33,7 +33,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Within extends AbstractBinarySpatialFunction {
+final class ST_Within extends AbstractBinarySpatialFunction {
public static final String NAME = "ST_Within";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_X.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_X.java
index 4fe1946..06c74e3 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_X.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_X.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_X extends AbstractAccessorSpatialFunction<Point> {
+final class ST_X extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_X";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromBinary.java
similarity index 98%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromBinary.java
index 10c26bc..447f857 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromBinary.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
@@ -37,7 +37,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public abstract class ST_XFromBinary extends AbstractSpatialFunction {
+abstract class ST_XFromBinary extends AbstractSpatialFunction {
public ST_XFromBinary(Expression[] parameters) {
super(parameters);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromGML.java
similarity index 98%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromGML.java
index 4929a7a..0dea7f1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromGML.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
@@ -35,7 +35,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public abstract class ST_XFromGML extends AbstractSpatialFunction {
+abstract class ST_XFromGML extends AbstractSpatialFunction {
public ST_XFromGML(Expression[] parameters) {
super(parameters);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromText.java
similarity index 98%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromText.java
index bfa5bba..fde7086 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_XFromText.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.apache.sis.feature.builder.FeatureTypeBuilder;
import org.apache.sis.feature.builder.PropertyTypeBuilder;
@@ -37,7 +37,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public abstract class ST_XFromText extends AbstractSpatialFunction {
+abstract class ST_XFromText extends AbstractSpatialFunction {
public ST_XFromText(Expression[] parameters) {
super(parameters);
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Y.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Y.java
index 3adfb18..fde489d 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Y.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Y.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Y extends AbstractAccessorSpatialFunction<Point> {
+final class ST_Y extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Y";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Z.java
similarity index 93%
rename from core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java
rename to core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Z.java
index ac4fa05..a14a0d2 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Z.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/ST_Z.java
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-package org.apache.sis.internal.filter.sqlmm.todo;
+package org.apache.sis.internal.filter.sqlmm;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
@@ -32,7 +32,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_Z extends AbstractAccessorSpatialFunction<Point> {
+final class ST_Z extends AbstractAccessorSpatialFunction<Point> {
public static final String NAME = "ST_Z";
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
deleted file mode 100644
index 66c7a3d..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Buffer.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.locationtech.jts.geom.Geometry;
-import java.text.ParseException;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
-import org.opengis.feature.FeatureType;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_Buffer. <br>
- * Return the ST_Geometry value that represents all points whose distance from any point of an ST_Geometry
- * value is less than or equal to a specified distance, ignoring z and m coordinate values in the calculations and
- * not including them in the resultant geometry.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public final class ST_Buffer extends AbstractAccessorSpatialFunction<Geometry> {
-
- public static final String NAME = "ST_Buffer";
-
- public ST_Buffer(Expression[] parameters) {
- super(parameters);
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- @Override
- protected int getMinParams() {
- return 2;
- }
-
- @Override
- protected int getMaxParams() {
- return 2;
- }
-
- @Override
- protected Class<Geometry> getExpectedClass() {
- return Geometry.class;
- }
-
- @Override
- public Object execute(Geometry geom, Object... params) throws ParseException {
- final double distance = Double.parseDouble(params[1].toString());
- final Geometry res = geom.buffer(distance);
- res.setSRID(geom.getSRID());
- return res;
- }
-
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java
deleted file mode 100644
index 37900b9..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Centroid.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.locationtech.jts.geom.Geometry;
-import java.text.ParseException;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
-import org.locationtech.jts.geom.Point;
-import org.opengis.feature.FeatureType;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_Centroid. <br>
- * Return the 2D ST_Point value that is the mathematical centroid of the ST_Surface value, ignoring z and m
- * coordinate values in the calculations and not including them in the resultant geometry.
- *
- * This class should be for all surface types, but JTS only has Polygon and MultiPolygon.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public final class ST_Centroid extends AbstractAccessorSpatialFunction<Geometry> {
-
- public static final String NAME = "ST_Centroid";
-
- public ST_Centroid(Expression[] parameters) {
- super(parameters);
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- @Override
- protected Class<Geometry> getExpectedClass() {
- return Geometry.class;
- }
-
- @Override
- public Object execute(Geometry geom, Object... params) throws ParseException {
- final Geometry centroid = geom.getCentroid();
- centroid.setSRID(geom.getSRID());
- return centroid;
- }
-
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Point.class).setName(NAME);
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
deleted file mode 100644
index e1aa429..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Envelope.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.locationtech.jts.geom.Geometry;
-import java.text.ParseException;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
-import org.opengis.feature.FeatureType;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_Envelope. <br>
- * Return the bounding rectangle for the ST_Geometry value, ignoring z and m coordinate values in the
- * calculations and not including them in the resultant geometry.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public final class ST_Envelope extends AbstractAccessorSpatialFunction<Geometry> {
-
- public static final String NAME = "ST_Envelope";
-
- public ST_Envelope(Expression[] parameters) {
- super(parameters);
- }
-
- @Override
- public String getName() {
- return NAME;
- }
-
- @Override
- protected Class<Geometry> getExpectedClass() {
- return Geometry.class;
- }
-
- @Override
- public Object execute(Geometry geom, Object... params) throws ParseException {
- final Geometry env = geom.getEnvelope();
- env.setSRID(geom.getSRID());
- return env;
- }
-
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(Geometry.class).setName(NAME);
- }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
index cf510e6..e6e19b1 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineString.java
@@ -16,10 +16,8 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
-import org.apache.sis.feature.builder.FeatureTypeBuilder;
-import org.apache.sis.feature.builder.PropertyTypeBuilder;
+import org.apache.sis.internal.filter.sqlmm.AbstractGeomConstructor;
import org.locationtech.jts.geom.LineString;
-import org.opengis.feature.FeatureType;
import org.opengis.filter.expression.Expression;
/**
@@ -30,7 +28,7 @@ import org.opengis.filter.expression.Expression;
* @since 2.0
* @module
*/
-public final class ST_LineString extends AbstractGeomConstructor{
+public final class ST_LineString extends AbstractGeomConstructor {
public static final String NAME = "ST_LineString";
@@ -48,8 +46,4 @@ public final class ST_LineString extends AbstractGeomConstructor{
return LineString.class;
}
- @Override
- public PropertyTypeBuilder expectedType(FeatureType valueType, FeatureTypeBuilder addTo) {
- return addTo.addAttribute(LineString.class).setName(NAME);
- }
}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
index d999efc..20cced9 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_Point.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractSpatialFunction;
import org.locationtech.jts.geom.Coordinate;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.io.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
index 85ec72a..5adef19 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToGeomColl.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.GeometryCollection;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
index c796631..cbcbec6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToLineString.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.LineString;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
index 1e8e89d..edd8aa5 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiLine.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiLineString;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
index c99b1ee..f3265f6 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPoint.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiPoint;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
index decf11c..48caf60 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToMultiPolygon.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.MultiPolygon;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
index bcfba87..3b92b7b 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPoint.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Point;
import java.text.ParseException;
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
index 83ec999..d495501 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_ToPolygon.java
@@ -16,6 +16,7 @@
*/
package org.apache.sis.internal.filter.sqlmm.todo;
+import org.apache.sis.internal.filter.sqlmm.AbstractAccessorSpatialFunction;
import org.locationtech.jts.geom.Geometry;
import org.locationtech.jts.geom.Polygon;
import java.text.ParseException;