This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git


The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
     new 2ff5543479 Remove the filling of Bursa-Wolf parameters in geodetic 
datum created from the EPSG database. Bursa-Wolf parameters were attached for 
compatibility with Well-Known Text (WKT) version 1. Since WKT 2 is now more 
widespread, since there is no benefit to attach these parameters compared to 
using the EPSG database when searching for coordinate operations, and since the 
current SQL queries do not work anymore with EPSG version 10+ (because 
AREA_OF_USE_CODE is always null), i [...]
2ff5543479 is described below

commit 2ff5543479148e323ae44958f21d0c23fce8a2f4
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Tue Jul 29 10:15:32 2025 +0200

    Remove the filling of Bursa-Wolf parameters in geodetic datum created from 
the EPSG database.
    Bursa-Wolf parameters were attached for compatibility with Well-Known Text 
(WKT) version 1.
    Since WKT 2 is now more widespread, since there is no benefit to attach 
these parameters
    compared to using the EPSG database when searching for coordinate 
operations,
    and since the current SQL queries do not work anymore with EPSG version 10+
    (because AREA_OF_USE_CODE is always null), it is not worth to fix these 
queries.
---
 .../apache/sis/io/wkt/GeodeticObjectParser.java    |   3 +-
 .../referencing/datum/DefaultGeodeticDatum.java    |  14 +-
 .../sis/referencing/factory/sql/BursaWolfInfo.java | 210 ---------------------
 .../referencing/factory/sql/EPSGDataAccess.java    | 119 ------------
 .../referencing/privy/CoordinateOperations.java    |   5 -
 .../referencing/factory/sql/EPSGFactoryTest.java   |   8 -
 6 files changed, 15 insertions(+), 344 deletions(-)

diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
index fcc952c75c..796b7abe65 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/io/wkt/GeodeticObjectParser.java
@@ -58,6 +58,7 @@ import org.apache.sis.referencing.cs.AbstractCS;
 import org.apache.sis.referencing.cs.CoordinateSystems;
 import org.apache.sis.referencing.crs.DefaultDerivedCRS;
 import org.apache.sis.referencing.datum.BursaWolfParameters;
+import org.apache.sis.referencing.datum.DefaultGeodeticDatum;
 import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 import org.apache.sis.referencing.privy.CoordinateOperations;
 import org.apache.sis.referencing.privy.ReferencingFactoryContainer;
@@ -1407,7 +1408,7 @@ class GeodeticObjectParser extends MathTransformParser 
implements Comparator<Coo
             meridian = CommonCRS.WGS84.primeMeridian();
         }
         if (toWGS84 != null) {
-            properties.put(CoordinateOperations.BURSA_WOLF_KEY, toWGS84);
+            properties.put(DefaultGeodeticDatum.BURSA_WOLF_KEY, toWGS84);
         }
         final DatumFactory datumFactory = factories.getDatumFactory();
         try {
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
index 736473a79e..d1393fe5b6 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/datum/DefaultGeodeticDatum.java
@@ -151,8 +151,15 @@ public class DefaultGeodeticDatum extends AbstractDatum 
implements GeodeticDatum
     /**
      * The <code>{@value #BURSA_WOLF_KEY}</code> property for
      * {@linkplain #getBursaWolfParameters() Bursa-Wolf parameters}.
+     *
+     * <h4>Possible evolution</h4>
+     * This is a legacy parameter from the Well-Known Text (<abbr>WKT</abbr>) 
1 format
+     * and may be deprecated in a future Apache <abbr>SIS</abbr> version.
+     * It should be replaced by the use of geodetic registries such as the 
<abbr>EPSG</abbr> database.
+     *
+     * @see #getBursaWolfParameters()
      */
-    public static final String BURSA_WOLF_KEY = 
CoordinateOperations.BURSA_WOLF_KEY;
+    public static final String BURSA_WOLF_KEY = "bursaWolf";
 
     /**
      * The array to be returned by {@link #getBursaWolfParameters()} when 
there is no Bursa-Wolf parameters.
@@ -349,6 +356,11 @@ public class DefaultGeodeticDatum extends AbstractDatum 
implements GeodeticDatum
      * Returns all Bursa-Wolf parameters specified in the {@code properties} 
map at construction time.
      * See class javadoc for a discussion about Bursa-Wolf parameters.
      *
+     * <h4>Possible evolution</h4>
+     * This is a legacy parameter from the Well-Known Text (<abbr>WKT</abbr>) 
1 format
+     * and may be deprecated in a future Apache <abbr>SIS</abbr> version.
+     * It should be replaced by the use of geodetic registries such as the 
<abbr>EPSG</abbr> database.
+     *
      * @return the Bursa-Wolf parameters, or an empty array if none.
      */
     @SuppressWarnings("ReturnOfCollectionOrArrayField")
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/BursaWolfInfo.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/BursaWolfInfo.java
deleted file mode 100644
index a37a89dd50..0000000000
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/BursaWolfInfo.java
+++ /dev/null
@@ -1,210 +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.referencing.factory.sql;
-
-import java.util.Locale;
-import java.util.List;
-import java.util.Map;
-import java.util.LinkedHashMap;
-import javax.measure.Unit;
-import javax.measure.IncommensurableException;
-import org.opengis.util.FactoryException;
-import org.opengis.metadata.extent.Extent;
-import org.apache.sis.referencing.privy.ExtentSelector;
-import org.apache.sis.referencing.datum.BursaWolfParameters;
-import org.apache.sis.referencing.datum.TimeDependentBWP;
-import org.apache.sis.referencing.factory.FactoryDataException;
-import org.apache.sis.referencing.factory.GeodeticAuthorityFactory;
-import org.apache.sis.util.resources.Errors;
-import org.apache.sis.measure.Units;
-
-
-/**
- * Private structure for {@link 
EPSGDataAccess#createBursaWolfParameters(PrimeMeridian, Integer)} usage.
- * Those information are for compatibility with <i>Well Known Text</i> (WKT) 
version 1 formatting.
- * That legacy format had a {@code TOWGS84} element which needs the 
information provided by this class.
- * Note that {@code TOWGS84} is a deprecated element as of WKT 2 (ISO 19162).
- *
- * <p><b>Note:</b> this class contains many hard-coded EPSG codes relative to 
Bursa-Wolf parameters.</p>
- *
- * @author  Martin Desruisseaux (IRD)
- *
- * @see BursaWolfParameters
- * @see TimeDependentBWP
- */
-final class BursaWolfInfo {
-    // See org.apache.sis.measure.Units.valueOfEPSG(int) for hard-coded units 
from EPSG codes.
-    // See TableInfo.EPSG for hard-coded table names, column names and GeoAPI 
types.
-
-    /**
-     * The target CRS for which to collect Bursa-Wolf parameters. Apache SIS 
accepts an arbitrary number of targets,
-     * but the {@code TOWGS84} element only needs the parameters toward the 
EPSG:4326 coordinate reference system.
-     * For now we fix the number of target CRS to only 1, but we can increase 
that amount in a future SIS version
-     * if needed. However, it is better to restrict the target CRS to those 
that use a world-wide datum only.
-     */
-    static final int TARGET_CRS = 4326;
-
-    /**
-     * The datum of {@link #TARGET_CRS}.
-     */
-    static final int TARGET_DATUM = 6326;
-
-    /** First Bursa-Wolf method. */ static final int MIN_METHOD_CODE = 9603;
-    /** Last Bursa-Wolf method.  */ static final int MAX_METHOD_CODE = 9607;
-    /** Rotation frame method.   */ private static final int 
ROTATION_FRAME_CODE = 9607;
-    //* Time-dependent rotation. */ private static final int 
ROTATION_TMDEP_CODE = 1056;
-
-    /**
-     * Sets a Bursa-Wolf parameter from an EPSG parameter.
-     * This method recognizes only the parameters that do not depend on time 
(EPSG:8605 to 8611).
-     * This method does not recognize the time-dependent parameters (EPSG:1040 
to 1046) because
-     * they are not used in WKT 1 {@code TOWGS84} elements.
-     *
-     * @param  parameters  the Bursa-Wolf parameters to modify.
-     * @param  code        the EPSG code for a parameter from the 
[PARAMETER_CODE] column.
-     * @param  value       the value of the parameter from the 
[PARAMETER_VALUE] column.
-     * @param  unit        the unit of the parameter value from the [UOM_CODE] 
column.
-     * @param  locale      the locale, used only if an error message need to 
be formatted.
-     * @throws FactoryDataException if the code is unrecognized.
-     */
-    static void setBursaWolfParameter(final BursaWolfParameters parameters, 
final int code,
-            double value, final Unit<?> unit, final Locale locale) throws 
FactoryDataException
-    {
-        Unit<?> target = unit;
-        if (code >= 8605) {
-            if      (code <= 8607) target = Units.METRE;
-            else if (code <= 8610) target = Units.ARC_SECOND;
-            else if (code == 8611) target = Units.PPM;
-        }
-        if (target != unit) try {
-            value = unit.getConverterToAny(target).convert(value);
-        } catch (IncommensurableException e) {
-            throw new 
FactoryDataException(Errors.forLocale(locale).getString(Errors.Keys.IncompatibleUnit_1,
 unit), e);
-        }
-        switch (code) {
-            case 8605: parameters.tX = value; break;
-            case 8606: parameters.tY = value; break;
-            case 8607: parameters.tZ = value; break;
-            case 8608: parameters.rX = value; break;
-            case 8609: parameters.rY = value; break;
-            case 8610: parameters.rZ = value; break;
-            case 8611: parameters.dS = value; break;
-            default: throw new FactoryDataException(Errors.forLocale(locale)
-                                .getString(Errors.Keys.UnexpectedParameter_1, 
code));
-        }
-    }
-
-    /**
-     * The value of {@code COORD_OP_CODE}.
-     */
-    final int operation;
-
-    /**
-     * The value of {@code COORD_OP_METHOD_CODE}.
-     */
-    final int method;
-
-    /**
-     * The target datum inferred from value of {@code TARGET_CRS_CODE}.
-     */
-    final int target;
-
-    /**
-     * The value of {@code AREA_OF_USE_CODE}.
-     */
-    private final int domainOfValidity;
-
-    /**
-     * The domain of validity as an {@code Extent} object.
-     */
-    private Extent extent;
-
-    /**
-     * Fills a structure with the specified values.
-     */
-    BursaWolfInfo(final int operation, final int method, final int targetCRS, 
final int domainOfValidity) {
-        this.operation        = operation;
-        this.method           = method;
-        this.domainOfValidity = domainOfValidity;
-        switch (targetCRS) {
-            case TARGET_CRS: target = TARGET_DATUM; break;
-            // More codes may be added in future SIS version.
-            default: throw new 
IllegalArgumentException(String.valueOf(targetCRS));
-        }
-    }
-
-    /**
-     * Returns {@code true} if this operation is a frame rotation.
-     * Frame rotations methods are:
-     *
-     * <ul>
-     *   <li>EPSG:9607 for the operation that does not depend on time.</li>
-     *   <li>EPSG:1056 for the time-dependent operation (not handled by this 
class).</li>
-     * </ul>
-     */
-    boolean isFrameRotation() {
-        return method == ROTATION_FRAME_CODE;
-    }
-
-    /**
-     * MUST returns the operation code. This is required by {@link 
EPSGDataAccess#sort(String, Object[])}.
-     */
-    @Override
-    public String toString() {
-        return String.valueOf(operation);
-    }
-
-    /**
-     * Gets the domain of validity. The result is cached.
-     *
-     * @param  factory  the factory to use for creating {@code Extent} 
instances.
-     */
-    Extent getDomainOfValidity(final GeodeticAuthorityFactory factory) throws 
FactoryException {
-        if (extent == null && domainOfValidity != 0) {
-            extent = factory.createExtent(String.valueOf(domainOfValidity));
-        }
-        return extent;
-    }
-
-    /**
-     * Given an array of {@code BursaWolfInfo} instances, retains only the 
instances having the largest
-     * domain of validity for each target datum. If two instances have the 
same domain of validity, the
-     * first one is retained. This presume that the instances have already 
been sorted for preference order
-     * before to invoke this method.
-     *
-     * @param  factory     the factory to use for creating {@code Extent} 
instances.
-     * @param  candidates  the Bursa-Wolf parameters candidates.
-     * @param  addTo       where to add the instances retained by this method.
-     */
-    static void filter(final GeodeticAuthorityFactory factory, final 
BursaWolfInfo[] candidates,
-            final List<BursaWolfInfo> addTo) throws FactoryException
-    {
-        final Map<Integer,ExtentSelector<BursaWolfInfo>> added = new 
LinkedHashMap<>();
-        for (BursaWolfInfo candidate : candidates) {
-            final Integer target = candidate.target;
-            ExtentSelector<BursaWolfInfo> selector = added.get(target);
-            if (selector == null) {
-                selector = new ExtentSelector<>(null);
-                added.put(target, selector);
-            }
-            selector.evaluate(candidate.getDomainOfValidity(factory), 
candidate);
-        }
-        for (final ExtentSelector<BursaWolfInfo> select : added.values()) {
-            addTo.add(select.best());
-        }
-    }
-}
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
index fc72ab8873..95b28efe86 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/factory/sql/EPSGDataAccess.java
@@ -70,9 +70,7 @@ import org.apache.sis.referencing.ImmutableIdentifier;
 import org.apache.sis.referencing.DefaultObjectDomain;
 import org.apache.sis.referencing.AbstractIdentifiedObject;
 import org.apache.sis.referencing.cs.CoordinateSystems;
-import org.apache.sis.referencing.datum.BursaWolfParameters;
 import org.apache.sis.referencing.datum.DefaultDatumEnsemble;
-import org.apache.sis.referencing.datum.DefaultGeodeticDatum;
 import org.apache.sis.referencing.operation.DefaultOperationMethod;
 import org.apache.sis.referencing.operation.DefaultCoordinateOperationFactory;
 import org.apache.sis.referencing.factory.FactoryDataException;
@@ -100,9 +98,7 @@ import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.CharSequences;
 import org.apache.sis.util.Localized;
 import org.apache.sis.util.Version;
-import org.apache.sis.util.Utilities;
 import org.apache.sis.util.Workaround;
-import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.collection.BackingStoreException;
 import org.apache.sis.util.resources.Vocabulary;
 import org.apache.sis.util.resources.Errors;
@@ -300,7 +296,6 @@ public class EPSGDataAccess extends 
GeodeticAuthorityFactory implements CRSAutho
      * Recursion may theoretically happen during the creation of the following 
objects:
      *
      * <ul>
-     *   <li>Bursa-Wolf parameters, as they can be created with a datum and 
reference another datum.</li>
      *   <li>projected <abbr>CRS</abbr> if the database contains cycles (it 
would be an error in the database).</li>
      *   <li>Compound <abbr>CRS</abbr> if the database contains cycles (it 
would be an error in the database).</li>
      *   <li>Coordinate operations if the database contains cycles (it would 
be an error in the database).</li>
@@ -1870,7 +1865,6 @@ search: try (ResultSet result = 
executeMetadataQuery("Deprecation",
                  * and similar methods. Instead, remember the constructor to 
invoke later.
                  */
                 final FactoryCall<DatumFactory, ? extends Datum> constructor;
-                BursaWolfParameters[] param = null;
                 /*
                  * The following switch statement should have a case for all 
"epsg_datum_kind" values enumerated
                  * in the "EPSG_Prepare.sql" file, except that the values in 
this Java code are in lower cases.
@@ -1886,7 +1880,6 @@ search: try (ResultSet result = 
executeMetadataQuery("Deprecation",
                             String meridianCode  = getString(code, result, 13);
                             ellipsoid = owner.createEllipsoid(ellipsoidCode);  
// Do not inline the `getString(…)` calls.
                             meridian  = 
owner.createPrimeMeridian(meridianCode);
-                            param     = createBursaWolfParameters(meridian, 
epsg);
                         } finally {
                             endOfCycleCheck(GeodeticDatum.class, epsg);
                         }
@@ -1953,7 +1946,6 @@ search: try (ResultSet result = 
executeMetadataQuery("Deprecation",
                 properties.put(Datum.ANCHOR_EPOCH_KEY,      epoch);
                 properties.put(Datum.PUBLICATION_DATE_KEY,  publish);
                 properties.put(Datum.CONVENTIONAL_RS_KEY, conventionalRS);
-                properties.put(DefaultGeodeticDatum.BURSA_WOLF_KEY, param);
                 properties.values().removeIf(Objects::isNull);
                 final Datum datum = constructor.create(owner.datumFactory, 
properties);
                 returnValue = ensureSingleton(datum, returnValue, code);
@@ -2055,117 +2047,6 @@ search: try (ResultSet result = 
executeMetadataQuery("Deprecation",
         return returnValue;
     }
 
-    /**
-     * Returns Bursa-Wolf parameters for a geodetic reference frame.
-     * If the specified datum has no conversion information, then this method 
returns {@code null}.
-     *
-     * <p>This method is for compatibility with <i>Well Known Text</i> (WKT) 
version 1 formatting.
-     * That legacy format had a {@code TOWGS84} element which needs the 
information provided by this method.
-     * Note that {@code TOWGS84} is a deprecated element as of WKT 2 (ISO 
19162).</p>
-     *
-     * @param  meridian  the source datum prime meridian, used for discarding 
any target datum using a different meridian.
-     * @param  code      the EPSG code of the source {@link GeodeticDatum}.
-     * @return an array of Bursa-Wolf parameters, or {@code null}.
-     */
-    private BursaWolfParameters[] createBursaWolfParameters(final 
PrimeMeridian meridian, final Integer code)
-            throws SQLException, FactoryException
-    {
-        /*
-         * We do not provide TOWGS84 information for WGS84 itself or for any 
other datum on our list of target datum,
-         * in order to avoid infinite recursion. The `ensureNonRecursive` call 
is an extra safety check which should
-         * never fail, unless TARGET_CRS and TARGET_DATUM values do not agree 
with database content.
-         */
-        if (code == BursaWolfInfo.TARGET_DATUM) {
-            return null;
-        }
-        final var bwInfos = new ArrayList<BursaWolfInfo>();
-        try (ResultSet result = executeQuery("BursaWolfParametersSet",
-                "SELECT COORD_OP_CODE," +
-                      " COORD_OP_METHOD_CODE," +
-                      " TARGET_CRS_CODE," +
-                      " AREA_OF_USE_CODE" +      // Deprecated since EPSG 
version 10 (always null).
-                " FROM \"Coordinate_Operation\"" +
-               " WHERE DEPRECATED=0" +           // Do not put spaces around 
"=" - SQLTranslator searches for this exact match.
-                 " AND AREA_OF_USE_CODE IS NOT NULL" +
-                 " AND TARGET_CRS_CODE = "       + BursaWolfInfo.TARGET_CRS +
-                 " AND COORD_OP_METHOD_CODE >= " + 
BursaWolfInfo.MIN_METHOD_CODE +
-                 " AND COORD_OP_METHOD_CODE <= " + 
BursaWolfInfo.MAX_METHOD_CODE +
-                 " AND SOURCE_CRS_CODE IN " +
-               "(SELECT COORD_REF_SYS_CODE FROM \"Coordinate Reference 
System\" WHERE DATUM_CODE = ?)" +
-            " ORDER BY TARGET_CRS_CODE, COORD_OP_ACCURACY, COORD_OP_CODE 
DESC", code))
-        {
-            while (result.next()) {
-                final var info = new BursaWolfInfo(
-                        getInteger(code, result, 1),                // 
Operation
-                        getInteger(code, result, 2),                // Method
-                        getInteger(code, result, 3),                // Target 
datum
-                        getInteger(code, result, 4));               // Domain 
of validity
-                if (info.target != code) {                          // 
Paranoiac check.
-                    bwInfos.add(info);
-                }
-            }
-        }
-        int size = bwInfos.size();
-        if (size == 0) {
-            return null;
-        }
-        /*
-         * Sort the infos in preference order. The "ORDER BY" clause above was 
not enough;
-         * we also need to take the "Supersession" table in account. Once the 
sorting is done,
-         * keep only one Bursa-Wolf parameters for each datum.
-         */
-        if (size > 1) {
-            final BursaWolfInfo[] codes = bwInfos.toArray(new 
BursaWolfInfo[size]);
-            sort("Coordinate_Operation", codes);
-            bwInfos.clear();
-            BursaWolfInfo.filter(owner, codes, bwInfos);
-            size = bwInfos.size();
-        }
-        /*
-         * Now, iterate over the results and fetch the parameter values for 
each BursaWolfParameters object.
-         */
-        final var parameters = new BursaWolfParameters[size];
-        final Locale locale = getLocale();
-        int count = 0;
-        for (int i=0; i<size; i++) {
-            final BursaWolfInfo info = bwInfos.get(i);
-            final GeodeticDatum datum = 
owner.createGeodeticDatum(String.valueOf(info.target));
-            /*
-             * Accept only Bursa-Wolf parameters between datum that use the 
same prime meridian.
-             * This is for avoiding ambiguity about whether longitude rotation 
should be applied
-             * before or after the datum change. This check is useless for 
EPSG dataset 8.9 since
-             * all datum seen by this method use Greenwich. But we 
nevertheless perform this check
-             * as a safety for future evolution or customized EPSG dataset.
-             */
-            if (!Utilities.equalsIgnoreMetadata(meridian, 
datum.getPrimeMeridian())) {
-                continue;
-            }
-            final var bwp = new BursaWolfParameters(datum, 
info.getDomainOfValidity(owner));
-            try (ResultSet result = executeQuery("BursaWolfParameters",
-                "SELECT PARAMETER_CODE," +
-                      " PARAMETER_VALUE," +
-                      " UOM_CODE" +
-                " FROM \"Coordinate_Operation Parameter Value\"" +
-                " WHERE COORD_OP_CODE = ?" +
-                  " AND COORD_OP_METHOD_CODE = ?", info.operation, 
info.method))
-            {
-                while (result.next()) {
-                    BursaWolfInfo.setBursaWolfParameter(bwp,
-                            getInteger(info.operation, result, 1),
-                            getDouble (info.operation, result, 2),
-                            owner.createUnit(getString(info.operation, result, 
3)), locale);
-                }
-            }
-            if (info.isFrameRotation()) {
-                // Coordinate frame rotation (9607): same as 9606,
-                // except for the sign of rotation parameters.
-                bwp.reverseRotation();
-            }
-            parameters[count++] = bwp;
-        }
-        return ArraysExt.resize(parameters, count);
-    }
-
     /**
      * Creates a geometric figure that can be used to describe the approximate 
shape of the earth.
      * In mathematical terms, it is a surface formed by the rotation of an 
ellipse about its minor axis.
diff --git 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/CoordinateOperations.java
 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/CoordinateOperations.java
index 11d8cff0d5..74f9b133b4 100644
--- 
a/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/CoordinateOperations.java
+++ 
b/endorsed/src/org.apache.sis.referencing/main/org/apache/sis/referencing/privy/CoordinateOperations.java
@@ -69,11 +69,6 @@ public final class CoordinateOperations extends Static {
      */
     public static final Logger LOGGER = 
Logger.getLogger(Loggers.COORDINATE_OPERATION);
 
-    /**
-     * The {@link 
org.apache.sis.referencing.datum.DefaultGeodeticDatum#BURSA_WOLF_KEY} value.
-     */
-    public static final String BURSA_WOLF_KEY = "bursaWolf";
-
     /**
      * The key for specifying explicitly the value to be returned by
      * {@link 
org.apache.sis.referencing.operation.DefaultConversion#getParameterValues()}.
diff --git 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/EPSGFactoryTest.java
 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/EPSGFactoryTest.java
index 14ff6e8944..d4139330cc 100644
--- 
a/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/EPSGFactoryTest.java
+++ 
b/endorsed/src/org.apache.sis.referencing/test/org/apache/sis/referencing/factory/sql/EPSGFactoryTest.java
@@ -47,8 +47,6 @@ import org.apache.sis.system.Loggers;
 import org.apache.sis.referencing.CRS;
 import org.apache.sis.referencing.cs.AxesConvention;
 import org.apache.sis.referencing.crs.DefaultGeographicCRS;
-import org.apache.sis.referencing.datum.BursaWolfParameters;
-import org.apache.sis.referencing.datum.DefaultGeodeticDatum;
 import org.apache.sis.referencing.operation.AbstractCoordinateOperation;
 import org.apache.sis.referencing.factory.IdentifiedObjectFinder;
 import org.apache.sis.util.collection.BackingStoreException;
@@ -120,9 +118,6 @@ public final class EPSGFactoryTest extends TestCaseWithLogs 
{
         assertEpsgNameAndIdentifierEqual("World Geodetic System 1984", 6326, 
crs.getDatum());
         assertAxisDirectionsEqual(crs.getCoordinateSystem(), 
AxisDirection.NORTH, AxisDirection.EAST);
 
-        final BursaWolfParameters[] bwp = ((DefaultGeodeticDatum) 
crs.getDatum()).getBursaWolfParameters();
-        assertEquals(0, bwp.length, "Expected no Bursa-Wolf parameters.");
-
         assertSame(crs, factory.createCoordinateReferenceSystem("4326"), "CRS 
shall be cached.");
         assertSame(crs, factory.createGeographicCRS("EPSG::4326"), "Shall 
accept \"::\"");
         loggings.assertNoUnexpectedLog();
@@ -141,9 +136,6 @@ public final class EPSGFactoryTest extends TestCaseWithLogs 
{
         assertEpsgNameAndIdentifierEqual("Datum 73", 6274, crs.getDatum());
         assertAxisDirectionsEqual(crs.getCoordinateSystem(), 
AxisDirection.NORTH, AxisDirection.EAST);
 
-        final BursaWolfParameters[] bwp = ((DefaultGeodeticDatum) 
crs.getDatum()).getBursaWolfParameters();
-        assertTrue(bwp.length >= 1, "Expected a transformation to WGS84.");
-
         assertSame(crs, factory.createCoordinateReferenceSystem("4274"), "CRS 
shall be cached.");
         loggings.assertNoUnexpectedLog();
     }

Reply via email to