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 <[email protected]> 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";
