sis-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jso...@apache.org
Subject [sis] 02/02: SQL/MM : cleaning code
Date Tue, 26 Nov 2019 16:36:10 GMT
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 07e298508099d17c066a47ff7bd26860e1ef89e7
Author: jsorel <johann.sorel@geomatys.com>
AuthorDate: Tue Nov 26 17:34:52 2019 +0100

    SQL/MM : cleaning code
---
 .../filter/sqlmm/todo/AbstractGeomFromBinary.java  |  70 ----
 .../filter/sqlmm/todo/AbstractGeomFromGML.java     |  79 ----
 .../filter/sqlmm/todo/AbstractGeomFromText.java    |  69 ----
 .../filter/sqlmm/todo/ST_BdMPolyFromText.java      |  74 ----
 .../filter/sqlmm/todo/ST_BdMPolyFromWKB.java       |  74 ----
 .../filter/sqlmm/todo/ST_BdPolyFromText.java       |  72 ----
 .../filter/sqlmm/todo/ST_BdPolyFromWKB.java        |  72 ----
 .../filter/sqlmm/todo/ST_GeomCollFromGML.java      |  49 ---
 .../filter/sqlmm/todo/ST_GeomCollFromText.java     |  49 ---
 .../filter/sqlmm/todo/ST_GeomCollFromWKB.java      |  49 ---
 .../internal/filter/sqlmm/todo/ST_GeomFromGML.java |  49 ---
 .../filter/sqlmm/todo/ST_GeomFromText.java         |  49 ---
 .../internal/filter/sqlmm/todo/ST_GeomFromWKB.java |  49 ---
 .../internal/filter/sqlmm/todo/ST_LineFromGML.java |  49 ---
 .../filter/sqlmm/todo/ST_LineFromText.java         |  49 ---
 .../internal/filter/sqlmm/todo/ST_LineFromWKB.java |  49 ---
 .../filter/sqlmm/todo/ST_MLineFromGML.java         |  49 ---
 .../filter/sqlmm/todo/ST_MLineFromText.java        |  49 ---
 .../filter/sqlmm/todo/ST_MLineFromWKB.java         |  49 ---
 .../filter/sqlmm/todo/ST_MPointFromGML.java        |  49 ---
 .../filter/sqlmm/todo/ST_MPointFromText.java       |  50 ---
 .../filter/sqlmm/todo/ST_MPointFromWKB.java        |  49 ---
 .../filter/sqlmm/todo/ST_MPolyFromGML.java         |  49 ---
 .../filter/sqlmm/todo/ST_MPolyFromText.java        |  49 ---
 .../filter/sqlmm/todo/ST_MPolyFromWKB.java         |  49 ---
 .../filter/sqlmm/todo/ST_PointFromGML.java         |  49 ---
 .../filter/sqlmm/todo/ST_PointFromText.java        |  49 ---
 .../filter/sqlmm/todo/ST_PointFromWKB.java         |  49 ---
 .../internal/filter/sqlmm/todo/ST_PolyFromGML.java |  49 ---
 .../filter/sqlmm/todo/ST_PolyFromText.java         |  49 ---
 .../internal/filter/sqlmm/todo/ST_PolyFromWKB.java |  49 ---
 .../internal/filter/sqlmm/todo/ST_XFromBinary.java | 417 +++++++++++++++++++++
 .../internal/filter/sqlmm/todo/ST_XFromGML.java    | 324 ++++++++++++++++
 .../internal/filter/sqlmm/todo/ST_XFromText.java   | 416 ++++++++++++++++++++
 34 files changed, 1157 insertions(+), 1687 deletions(-)

diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromBinary.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromBinary.java
deleted file mode 100644
index 5de6e39..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromBinary.java
+++ /dev/null
@@ -1,70 +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.apache.sis.internal.filter.FilterGeometryUtils;
-import org.locationtech.jts.geom.Geometry;
-import org.opengis.filter.expression.Expression;
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public abstract class AbstractGeomFromBinary extends AbstractSpatialFunction {
-
-    public AbstractGeomFromBinary(Expression[] parameters) {
-        super(parameters);
-    }
-
-    @Override
-    protected int getMinParams() {
-        return 1;
-    }
-
-    @Override
-    protected int getMaxParams() {
-        return 2;
-    }
-
-    protected abstract Class getExpectedClass();
-
-    public String getSyntax() {
-        return getName() + " ( <wkb> [,<srid>] )";
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-
-        Geometry geom = FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
-
-        if (!getExpectedClass().isInstance(geom)) {
-            warning(new Exception("WKB is not of expected type : " + getExpectedClass().getSimpleName()));
-            return null;
-        }
-
-        if (parameters.size() > 1) {
-            //srid
-            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
-        }
-
-        return geom;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromGML.java
deleted file mode 100644
index 690b9d1..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromGML.java
+++ /dev/null
@@ -1,79 +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.opengis.filter.expression.Expression;
-import org.opengis.util.FactoryException;
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public abstract class AbstractGeomFromGML extends AbstractSpatialFunction {
-
-    public AbstractGeomFromGML(Expression[] parameters) {
-        super(parameters);
-    }
-
-    @Override
-    protected int getMinParams() {
-        return 1;
-    }
-
-    @Override
-    protected int getMaxParams() {
-        return 2;
-    }
-
-    protected abstract Class getExpectedClass();
-
-    public String getSyntax() {
-        return getName() + " ( <gml> [,<srid>] )";
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-
-        final Object obj = parameters.get(0).evaluate(candidate);
-
-        final Geometry geom;
-        try {
-            geom = GeometrytoJTS.toJTS(String.valueOf(obj));
-        } catch (FactoryException ex) {
-            throw new OException(ex.getMessage(), ex);
-        } catch (JAXBException ex) {
-            throw new OException(ex.getMessage(), ex);
-        }
-
-        if (!getExpectedClass().isInstance(geom)) {
-            warning(new Exception("GML is not of expected type : " + getExpectedClass().getSimpleName()));
-            return null;
-        }
-
-        if (parameters.size() > 1) {
-            //srid
-            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
-        }
-
-        return geom;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromText.java
deleted file mode 100644
index 17e4e07..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/AbstractGeomFromText.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.sis.internal.filter.sqlmm.todo;
-
-import org.apache.sis.internal.filter.FilterGeometryUtils;
-import org.locationtech.jts.geom.Geometry;
-import org.opengis.filter.expression.Expression;
-
-/**
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since 2.0
- * @module
- */
-public abstract class AbstractGeomFromText extends AbstractSpatialFunction {
-
-    public AbstractGeomFromText(Expression[] parameters) {
-        super(parameters);
-    }
-
-    @Override
-    protected int getMinParams() {
-        return 1;
-    }
-
-    @Override
-    protected int getMaxParams() {
-        return 2;
-    }
-
-    protected abstract Class getExpectedClass();
-
-    public String getSyntax() {
-        return getName() + " ( <text> [,<srid>] )";
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-
-        final Geometry geom = FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
-
-        if (!getExpectedClass().isInstance(geom)) {
-            warning(new Exception("WKT is not of expected type : " + getExpectedClass().getSimpleName()));
-            return null;
-        }
-
-        if (parameters.size() > 1) {
-            //srid
-            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
-        }
-        return geom;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromText.java
deleted file mode 100644
index 5d666ac..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromText.java
+++ /dev/null
@@ -1,74 +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.geom.LinearRing;
-import org.locationtech.jts.geom.MultiLineString;
-import org.locationtech.jts.geom.MultiPolygon;
-import org.locationtech.jts.geom.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromText. <br>
- * 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 final class ST_BdMPolyFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_BdMPolyFromText";
-
-    public ST_BdMPolyFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-        final OSerializableGeometry sergeo = super.evaluateNow(context,candidate);
-        final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
-
-        final LinearRing exterior;
-        final LinearRing[] interiors = new LinearRing[mls.getNumGeometries()-1];
-
-        exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
-        for(int i=0;i<interiors.length;i++){
-            interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i+1).getCoordinates());
-        }
-
-        final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
-        final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
-        mpoly.setSRID(mls.getSRID());
-        sergeo.setGeometry(mpoly);
-        return sergeo;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromWKB.java
deleted file mode 100644
index fdc9abf..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdMPolyFromWKB.java
+++ /dev/null
@@ -1,74 +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.geom.LinearRing;
-import org.locationtech.jts.geom.MultiLineString;
-import org.locationtech.jts.geom.MultiPolygon;
-import org.locationtech.jts.geom.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromWKB. <br>
- * 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 final class ST_BdMPolyFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_BdMPolyFromWKB";
-
-    public ST_BdMPolyFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-        final OSerializableGeometry sergeo = super.evaluateNow(context,candidate);
-        final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
-
-        final LinearRing exterior;
-        final LinearRing[] interiors = new LinearRing[mls.getNumGeometries()-1];
-
-        exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
-        for(int i=0;i<interiors.length;i++){
-            interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i+1).getCoordinates());
-        }
-
-        final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
-        final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
-        mpoly.setSRID(mls.getSRID());
-        sergeo.setGeometry(mpoly);
-        return sergeo;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromText.java
deleted file mode 100644
index 3422644..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromText.java
+++ /dev/null
@@ -1,72 +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.geom.LinearRing;
-import org.locationtech.jts.geom.MultiLineString;
-import org.locationtech.jts.geom.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_BdPolyFromText. <br>
- * 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 final class ST_BdPolyFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_BdPolyFromText";
-
-    public ST_BdPolyFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-
-    @Override
-    public Geometry evaluate(Object candidate) {
-        final OSerializableGeometry sergeo = super.evaluateNow(context,candidate);
-        final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
-
-        final LinearRing exterior;
-        final LinearRing[] interiors = new LinearRing[mls.getNumGeometries()-1];
-
-        exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
-        for(int i=0;i<interiors.length;i++){
-            interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i+1).getCoordinates());
-        }
-
-        final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
-        poly.setSRID(mls.getSRID());
-        sergeo.setGeometry(poly);
-        return sergeo;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromWKB.java
deleted file mode 100644
index a20b196..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_BdPolyFromWKB.java
+++ /dev/null
@@ -1,72 +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.geom.LinearRing;
-import org.locationtech.jts.geom.MultiLineString;
-import org.locationtech.jts.geom.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_BdPolyFromWKB. <br>
- * 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 final class ST_BdPolyFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_BdPolyFromWKB";
-
-    public ST_BdPolyFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-    
-    @Override
-    public Geometry evaluate(Object candidate) {
-        final OSerializableGeometry sergeo = super.evaluateNow(context,candidate);
-        final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
-
-        final LinearRing exterior;
-        final LinearRing[] interiors = new LinearRing[mls.getNumGeometries()-1];
-
-        exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
-        for(int i=0;i<interiors.length;i++){
-            interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i+1).getCoordinates());
-        }
-
-        final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
-        poly.setSRID(mls.getSRID());
-        sergeo.setGeometry(poly);
-        return sergeo;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromGML.java
deleted file mode 100644
index 3bc2d2e..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromGML.java
+++ /dev/null
@@ -1,49 +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.GeometryCollection;
-import org.opengis.filter.expression.Expression;
-
-/**
- * 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 ST_GeomCollection value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since   2.0
- * @module
- */
-public final class ST_GeomCollFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_GeomCollFromGML";
-
-    public ST_GeomCollFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<GeometryCollection> getExpectedClass() {
-        return GeometryCollection.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromText.java
deleted file mode 100644
index 587b6a1..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromText.java
+++ /dev/null
@@ -1,49 +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.GeometryCollection;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromText. <br>
- * 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 final class ST_GeomCollFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_GeomCollFromText";
-
-    public ST_GeomCollFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<GeometryCollection> getExpectedClass() {
-        return GeometryCollection.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromWKB.java
deleted file mode 100644
index 739feca..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomCollFromWKB.java
+++ /dev/null
@@ -1,49 +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.GeometryCollection;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromWKB. <br>
- * 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 final class ST_GeomCollFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_GeomCollFromWKB";
-
-    public ST_GeomCollFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<GeometryCollection> getExpectedClass() {
-        return GeometryCollection.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromGML.java
deleted file mode 100644
index 5ac64bc..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromGML.java
+++ /dev/null
@@ -1,49 +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.opengis.filter.expression.Expression;
-
-/**
- * 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
- */
-public final class ST_GeomFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_GeomFromGML";
-
-    public ST_GeomFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Geometry> getExpectedClass() {
-        return Geometry.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromText.java
deleted file mode 100644
index 849c5cb..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromText.java
+++ /dev/null
@@ -1,49 +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.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomFromText. <br>
- * 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 final class ST_GeomFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_GeomFromText";
-
-    public ST_GeomFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Geometry> getExpectedClass() {
-        return Geometry.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromWKB.java
deleted file mode 100644
index 9574ddc..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_GeomFromWKB.java
+++ /dev/null
@@ -1,49 +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.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomFromWKB. <br>
- * 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 final class ST_GeomFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_GeomFromWKB";
-
-    public ST_GeomFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Geometry> getExpectedClass() {
-        return Geometry.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromGML.java
deleted file mode 100644
index 9aa5b89..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromGML.java
+++ /dev/null
@@ -1,49 +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.LineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromGML. <br>
- * 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 final class ST_LineFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_LineFromGML";
-
-    public ST_LineFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<LineString> getExpectedClass() {
-        return LineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromText.java
deleted file mode 100644
index 0b3e09f..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromText.java
+++ /dev/null
@@ -1,49 +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.LineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromText. <br>
- * 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 final class ST_LineFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_LineFromText";
-
-    public ST_LineFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<LineString> getExpectedClass() {
-        return LineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromWKB.java
deleted file mode 100644
index 4d37ef0..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_LineFromWKB.java
+++ /dev/null
@@ -1,49 +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.LineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromWKB. <br>
- * 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 final class ST_LineFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_LineFromWKB";
-
-    public ST_LineFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<LineString> getExpectedClass() {
-        return LineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromGML.java
deleted file mode 100644
index eccf1fc..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromGML.java
+++ /dev/null
@@ -1,49 +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.MultiLineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromGML. <br>
- * Return an ST_MultiLineString value which is transformed from a CHARACTER LARGE OBJECT value that
- * represents the GML representationof an ST_MultiLineString value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since   2.0
- * @module
- */
-public final class ST_MLineFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_MLineFromGML";
-
-    public ST_MLineFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromText.java
deleted file mode 100644
index c7d46ad..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromText.java
+++ /dev/null
@@ -1,49 +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.MultiLineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MLineFromText. <br>
- * 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 final class ST_MLineFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_MLineFromText";
-
-    public ST_MLineFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromWKB.java
deleted file mode 100644
index 412321a..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MLineFromWKB.java
+++ /dev/null
@@ -1,49 +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.MultiLineString;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromWKB. <br>
- * 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 final class ST_MLineFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_MLineFromWKB";
-
-    public ST_MLineFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiLineString> getExpectedClass() {
-        return MultiLineString.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromGML.java
deleted file mode 100644
index 3f0b242..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromGML.java
+++ /dev/null
@@ -1,49 +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.MultiPoint;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromGML. <br>
- * 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 final class ST_MPointFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_MPointFromGML";
-
-    public ST_MPointFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPoint> getExpectedClass() {
-        return MultiPoint.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromText.java
deleted file mode 100644
index bdbe93d..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromText.java
+++ /dev/null
@@ -1,50 +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.MultiPoint;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromText. <br>
- * 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 final class ST_MPointFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_MPointFromText";
-
-    public ST_MPointFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPoint> getExpectedClass() {
-        return MultiPoint.class;
-    }
-
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromWKB.java
deleted file mode 100644
index f5b2467..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPointFromWKB.java
+++ /dev/null
@@ -1,49 +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.MultiPoint;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromWKB. <br>
- * 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 final class ST_MPointFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_MPointFromWKB";
-
-    public ST_MPointFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPoint> getExpectedClass() {
-        return MultiPoint.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromGML.java
deleted file mode 100644
index 74237a0..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromGML.java
+++ /dev/null
@@ -1,49 +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.MultiPolygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromGML. <br>
- * Return an ST_MultiPolygon value which is transformed from a CHARACTER LARGE OBJECT value that
- * represents the GML representationof an ST_MultiPolygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since   2.0
- * @module
- */
-public final class ST_MPolyFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_MPolyFromGML";
-
-    public ST_MPolyFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPolygon> getExpectedClass() {
-        return MultiPolygon.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromText.java
deleted file mode 100644
index d093b28..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromText.java
+++ /dev/null
@@ -1,49 +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.MultiPolygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromText. <br>
- * 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 final class ST_MPolyFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_MPolyFromText";
-
-    public ST_MPolyFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPolygon> getExpectedClass() {
-        return MultiPolygon.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromWKB.java
deleted file mode 100644
index 375673d..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_MPolyFromWKB.java
+++ /dev/null
@@ -1,49 +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.MultiPolygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromWKB. <br>
- * 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 final class ST_MPolyFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_MPolyFromWKB";
-
-    public ST_MPolyFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<MultiPolygon> getExpectedClass() {
-        return MultiPolygon.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromGML.java
deleted file mode 100644
index a97af22..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromGML.java
+++ /dev/null
@@ -1,49 +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.Point;
-import org.opengis.filter.expression.Expression;
-
-/**
- * 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 representationof an ST_Point.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since   2.0
- * @module
- */
-public final class ST_PointFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_PointFromGML";
-
-    public ST_PointFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Point> getExpectedClass() {
-        return Point.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromText.java
deleted file mode 100644
index 662b0ef..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromText.java
+++ /dev/null
@@ -1,49 +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.Point;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_PointFromText. <br>
- * 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 final class ST_PointFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_PointFromText";
-
-    public ST_PointFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Point> getExpectedClass() {
-        return Point.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromWKB.java
deleted file mode 100644
index 761d5dc..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PointFromWKB.java
+++ /dev/null
@@ -1,49 +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.Point;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_PointFromWKB. <br>
- * 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 final class ST_PointFromWKB extends AbstractGeomFromBinary{
-
-    public static final String NAME = "ST_PointFromWKB";
-
-    public ST_PointFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Point> getExpectedClass() {
-        return Point.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromGML.java
deleted file mode 100644
index 3e4bf92..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromGML.java
+++ /dev/null
@@ -1,49 +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.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromGML. <br>
- * Return an ST_Polygon value which is transformed from a CHARACTER LARGE OBJECT value that
- * represents the GML representationof an ST_Polygon value.
- *
- * @author Johann Sorel (Geomatys)
- * @version 2.0
- * @since   2.0
- * @module
- */
-public final class ST_PolyFromGML extends AbstractGeomFromGML{
-
-    public static final String NAME = "ST_PolyFromGML";
-
-    public ST_PolyFromGML(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Polygon> getExpectedClass() {
-        return Polygon.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromText.java
deleted file mode 100644
index 1d81020..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromText.java
+++ /dev/null
@@ -1,49 +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.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromText. <br>
- * 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 final class ST_PolyFromText extends AbstractGeomFromText{
-
-    public static final String NAME = "ST_PolyFromText";
-
-    public ST_PolyFromText(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Polygon> getExpectedClass() {
-        return Polygon.class;
-    }
-}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromWKB.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromWKB.java
deleted file mode 100644
index 1eb8b47..0000000
--- a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_PolyFromWKB.java
+++ /dev/null
@@ -1,49 +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.Polygon;
-import org.opengis.filter.expression.Expression;
-
-/**
- * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromWKB. <br>
- * 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 final class ST_PolyFromWKB extends AbstractGeomFromBinary {
-
-    public static final String NAME = "ST_PolyFromWKB";
-
-    public ST_PolyFromWKB(Expression[] parameters){
-        super(parameters);
-    }
-
-    @Override
-    public String getName() {
-        return NAME;
-    }
-
-    @Override
-    protected Class<Polygon> getExpectedClass() {
-        return Polygon.class;
-    }
-}
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
new file mode 100644
index 0000000..07e8756
--- /dev/null
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromBinary.java
@@ -0,0 +1,417 @@
+/*
+ * 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.apache.sis.internal.filter.FilterGeometryUtils;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.GeometryCollection;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.LinearRing;
+import org.locationtech.jts.geom.MultiLineString;
+import org.locationtech.jts.geom.MultiPoint;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import org.opengis.filter.expression.Expression;
+
+/**
+ *
+ * @author Johann Sorel (Geomatys)
+ * @version 2.0
+ * @since 2.0
+ * @module
+ */
+public abstract class ST_XFromBinary extends AbstractSpatialFunction {
+
+    public ST_XFromBinary(Expression[] parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected int getMinParams() {
+        return 1;
+    }
+
+    @Override
+    protected int getMaxParams() {
+        return 2;
+    }
+
+    protected abstract Class getExpectedClass();
+
+    public String getSyntax() {
+        return getName() + " ( <wkb> [,<srid>] )";
+    }
+
+    @Override
+    public Geometry evaluate(Object candidate) {
+
+        Geometry geom = FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
+
+        if (!getExpectedClass().isInstance(geom)) {
+            warning(new Exception("WKB is not of expected type : " + getExpectedClass().getSimpleName()));
+            return null;
+        }
+
+        if (parameters.size() > 1) {
+            //srid
+            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
+        }
+
+        return geom;
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromWKB. <br>
+     * 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 String NAME = "ST_BdMPolyFromWKB";
+
+        public ST_BdMPolyFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+
+        @Override
+        public Geometry evaluate(Object candidate) {
+            final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
+            final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+
+            final LinearRing exterior;
+            final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
+
+            exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+            for (int i = 0; i < interiors.length; i++) {
+                interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+            }
+
+            final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+            final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
+            mpoly.setSRID(mls.getSRID());
+            sergeo.setGeometry(mpoly);
+            return sergeo;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_BdPolyFromWKB. <br>
+     * 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 String NAME = "ST_BdPolyFromWKB";
+
+        public ST_BdPolyFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+
+        @Override
+        public Geometry evaluate(Object candidate) {
+            final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
+            final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+
+            final LinearRing exterior;
+            final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
+
+            exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+            for (int i = 0; i < interiors.length; i++) {
+                interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+            }
+
+            final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+            poly.setSRID(mls.getSRID());
+            sergeo.setGeometry(poly);
+            return sergeo;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromWKB. <br>
+     * 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 String NAME = "ST_GeomCollFromWKB";
+
+        public ST_GeomCollFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<GeometryCollection> getExpectedClass() {
+            return GeometryCollection.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomFromWKB. <br>
+     * 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 String NAME = "ST_GeomFromWKB";
+
+        public ST_GeomFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Geometry> getExpectedClass() {
+            return Geometry.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromWKB. <br>
+     * 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 String NAME = "ST_LineFromWKB";
+
+        public ST_LineFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<LineString> getExpectedClass() {
+            return LineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromWKB. <br>
+     * 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 String NAME = "ST_MLineFromWKB";
+
+        public ST_MLineFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromWKB. <br>
+     * 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 String NAME = "ST_MPointFromWKB";
+
+        public ST_MPointFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPoint> getExpectedClass() {
+            return MultiPoint.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromWKB. <br>
+     * 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 String NAME = "ST_MPolyFromWKB";
+
+        public ST_MPolyFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPolygon> getExpectedClass() {
+            return MultiPolygon.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_PointFromWKB. <br>
+     * 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 String NAME = "ST_PointFromWKB";
+
+        public ST_PointFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Point> getExpectedClass() {
+            return Point.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromWKB. <br>
+     * 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 String NAME = "ST_PolyFromWKB";
+
+        public ST_PolyFromWKB(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Polygon> getExpectedClass() {
+            return Polygon.class;
+        }
+    }
+
+}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
new file mode 100644
index 0000000..223eb1e
--- /dev/null
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromGML.java
@@ -0,0 +1,324 @@
+/*
+ * 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.geom.GeometryCollection;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.MultiLineString;
+import org.locationtech.jts.geom.MultiPoint;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import org.opengis.filter.expression.Expression;
+import org.opengis.util.FactoryException;
+
+/**
+ *
+ * @author Johann Sorel (Geomatys)
+ * @version 2.0
+ * @since 2.0
+ * @module
+ */
+public abstract class ST_XFromGML extends AbstractSpatialFunction {
+
+    public ST_XFromGML(Expression[] parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected int getMinParams() {
+        return 1;
+    }
+
+    @Override
+    protected int getMaxParams() {
+        return 2;
+    }
+
+    protected abstract Class getExpectedClass();
+
+    public String getSyntax() {
+        return getName() + " ( <gml> [,<srid>] )";
+    }
+
+    @Override
+    public Geometry evaluate(Object candidate) {
+
+        final Object obj = parameters.get(0).evaluate(candidate);
+
+        final Geometry geom;
+        try {
+            geom = GeometrytoJTS.toJTS(String.valueOf(obj));
+        } catch (FactoryException ex) {
+            throw new OException(ex.getMessage(), ex);
+        } catch (JAXBException ex) {
+            throw new OException(ex.getMessage(), ex);
+        }
+
+        if (!getExpectedClass().isInstance(geom)) {
+            warning(new Exception("GML is not of expected type : " + getExpectedClass().getSimpleName()));
+            return null;
+        }
+
+        if (parameters.size() > 1) {
+            //srid
+            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
+        }
+
+        return geom;
+    }
+
+    /**
+     * 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
+     * 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 String NAME = "ST_GeomCollFromGML";
+
+        public ST_GeomCollFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<GeometryCollection> getExpectedClass() {
+            return GeometryCollection.class;
+        }
+    }
+
+    /**
+     * 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
+     */
+    public static final class ST_GeomFromGML extends ST_XFromGML {
+
+        public static final String NAME = "ST_GeomFromGML";
+
+        public ST_GeomFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Geometry> getExpectedClass() {
+            return Geometry.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromGML. <br>
+     * 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 String NAME = "ST_LineFromGML";
+
+        public ST_LineFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<LineString> getExpectedClass() {
+            return LineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromGML. <br>
+     * 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 String NAME = "ST_MLineFromGML";
+
+        public ST_MLineFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromGML. <br>
+     * 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 String NAME = "ST_MPointFromGML";
+
+        public ST_MPointFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPoint> getExpectedClass() {
+            return MultiPoint.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromGML. <br>
+     * 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 String NAME = "ST_MPolyFromGML";
+
+        public ST_MPolyFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPolygon> getExpectedClass() {
+            return MultiPolygon.class;
+        }
+    }
+
+    /**
+     * 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 String NAME = "ST_PointFromGML";
+
+        public ST_PointFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Point> getExpectedClass() {
+            return Point.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromGML. <br>
+     * 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 String NAME = "ST_PolyFromGML";
+
+        public ST_PolyFromGML(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Polygon> getExpectedClass() {
+            return Polygon.class;
+        }
+    }
+
+}
diff --git a/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
new file mode 100644
index 0000000..6928765
--- /dev/null
+++ b/core/sis-feature/src/main/java/org/apache/sis/internal/filter/sqlmm/todo/ST_XFromText.java
@@ -0,0 +1,416 @@
+/*
+ * 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.apache.sis.internal.filter.FilterGeometryUtils;
+import org.locationtech.jts.geom.Geometry;
+import org.locationtech.jts.geom.GeometryCollection;
+import org.locationtech.jts.geom.LineString;
+import org.locationtech.jts.geom.LinearRing;
+import org.locationtech.jts.geom.MultiLineString;
+import org.locationtech.jts.geom.MultiPoint;
+import org.locationtech.jts.geom.MultiPolygon;
+import org.locationtech.jts.geom.Point;
+import org.locationtech.jts.geom.Polygon;
+import org.opengis.filter.expression.Expression;
+
+/**
+ *
+ * @author Johann Sorel (Geomatys)
+ * @version 2.0
+ * @since 2.0
+ * @module
+ */
+public abstract class ST_XFromText extends AbstractSpatialFunction {
+
+    public ST_XFromText(Expression[] parameters) {
+        super(parameters);
+    }
+
+    @Override
+    protected int getMinParams() {
+        return 1;
+    }
+
+    @Override
+    protected int getMaxParams() {
+        return 2;
+    }
+
+    protected abstract Class getExpectedClass();
+
+    public String getSyntax() {
+        return getName() + " ( <text> [,<srid>] )";
+    }
+
+    @Override
+    public Geometry evaluate(Object candidate) {
+
+        final Geometry geom = FilterGeometryUtils.toGeometry(candidate, parameters.get(0));
+
+        if (!getExpectedClass().isInstance(geom)) {
+            warning(new Exception("WKT is not of expected type : " + getExpectedClass().getSimpleName()));
+            return null;
+        }
+
+        if (parameters.size() > 1) {
+            //srid
+            geom.setSRID(((Number) parameters.get(1).evaluate(candidate)).intValue());
+        }
+        return geom;
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_BdMPolyFromText. <br>
+     * 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 String NAME = "ST_BdMPolyFromText";
+
+        public ST_BdMPolyFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+
+        @Override
+        public Geometry evaluate(Object candidate) {
+            final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
+            final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+
+            final LinearRing exterior;
+            final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
+
+            exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+            for (int i = 0; i < interiors.length; i++) {
+                interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+            }
+
+            final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+            final MultiPolygon mpoly = OrientSpatialUtilities.GF.createMultiPolygon(new Polygon[]{poly});
+            mpoly.setSRID(mls.getSRID());
+            sergeo.setGeometry(mpoly);
+            return sergeo;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_BdPolyFromText. <br>
+     * 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 String NAME = "ST_BdPolyFromText";
+
+        public ST_BdPolyFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+
+        @Override
+        public Geometry evaluate(Object candidate) {
+            final OSerializableGeometry sergeo = super.evaluateNow(context, candidate);
+            final MultiLineString mls = (MultiLineString) sergeo.getGeometry();
+
+            final LinearRing exterior;
+            final LinearRing[] interiors = new LinearRing[mls.getNumGeometries() - 1];
+
+            exterior = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(0).getCoordinates());
+            for (int i = 0; i < interiors.length; i++) {
+                interiors[i] = OrientSpatialUtilities.GF.createLinearRing(mls.getGeometryN(i + 1).getCoordinates());
+            }
+
+            final Polygon poly = OrientSpatialUtilities.GF.createPolygon(exterior, interiors);
+            poly.setSRID(mls.getSRID());
+            sergeo.setGeometry(poly);
+            return sergeo;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomCollFromText. <br>
+     * 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 String NAME = "ST_GeomCollFromText";
+
+        public ST_GeomCollFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<GeometryCollection> getExpectedClass() {
+            return GeometryCollection.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_GeomFromText. <br>
+     * 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 String NAME = "ST_GeomFromText";
+
+        public ST_GeomFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Geometry> getExpectedClass() {
+            return Geometry.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_LineFromText. <br>
+     * 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 String NAME = "ST_LineFromText";
+
+        public ST_LineFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<LineString> getExpectedClass() {
+            return LineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MLineFromText. <br>
+     * 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 String NAME = "ST_MLineFromText";
+
+        public ST_MLineFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiLineString> getExpectedClass() {
+            return MultiLineString.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPointFromText. <br>
+     * 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 String NAME = "ST_MPointFromText";
+
+        public ST_MPointFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPoint> getExpectedClass() {
+            return MultiPoint.class;
+        }
+
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_MPolyFromText. <br>
+     * 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 String NAME = "ST_MPolyFromText";
+
+        public ST_MPolyFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<MultiPolygon> getExpectedClass() {
+            return MultiPolygon.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_PointFromText. <br>
+     * 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 String NAME = "ST_PointFromText";
+
+        public ST_PointFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Point> getExpectedClass() {
+            return Point.class;
+        }
+    }
+
+    /**
+     * SQL/MM, ISO/IEC 13249-3:2011, ST_PolyFromText. <br>
+     * 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 String NAME = "ST_PolyFromText";
+
+        public ST_PolyFromText(Expression[] parameters) {
+            super(parameters);
+        }
+
+        @Override
+        public String getName() {
+            return NAME;
+        }
+
+        @Override
+        protected Class<Polygon> getExpectedClass() {
+            return Polygon.class;
+        }
+    }
+}


Mime
View raw message