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

commit 303a0025a9e587ccd1bd8501e11bab97d4da8a9d
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Mar 26 17:02:10 2022 +0100

    Move `AbstractResource`, `AbstractFeatureSet` and 
`AbstractGridCoverageResource` to public API.
---
 .../coverage/MultiResolutionCoverageLoaderTest.java    |  4 ++--
 .../java/org/apache/sis/storage/landsat/BandGroup.java |  2 +-
 .../apache/sis/storage/landsat/MetadataReaderTest.java |  2 +-
 .../apache/sis/internal/netcdf/DiscreteSampling.java   |  2 +-
 .../org/apache/sis/internal/netcdf/RasterResource.java |  4 ++--
 .../java/org/apache/sis/internal/netcdf/TestCase.java  |  2 +-
 .../org/apache/sis/internal/sql/feature/Table.java     |  2 +-
 .../sis/internal/storage/AggregatedFeatureSet.java     |  1 +
 .../sis/internal/storage/ConcatenatedFeatureSet.java   |  1 +
 .../apache/sis/internal/storage/MemoryFeatureSet.java  |  1 +
 .../sis/internal/storage/MemoryGridResource.java       |  3 ++-
 .../apache/sis/internal/storage/MetadataBuilder.java   | 11 +++++++----
 .../apache/sis/internal/storage/TiledGridResource.java |  5 +++--
 .../sis/{internal => }/storage/AbstractFeatureSet.java | 11 +++++------
 .../AbstractGridCoverageResource.java}                 | 18 ++++++++----------
 .../sis/{internal => }/storage/AbstractResource.java   | 10 ++++------
 .../java/org/apache/sis/storage/CoverageSubset.java    |  3 +--
 .../java/org/apache/sis/storage/FeatureSubset.java     |  3 +--
 .../apache/sis/internal/storage/RangeArgumentTest.java |  7 ++++---
 .../java/org/apache/sis/storage/GridResourceMock.java  |  3 +--
 .../sis/test/storage/CoverageReadConsistency.java      |  6 +++---
 21 files changed, 51 insertions(+), 50 deletions(-)

diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoaderTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoaderTest.java
index 77bb343..e12505c 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoaderTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/coverage/MultiResolutionCoverageLoaderTest.java
@@ -29,8 +29,8 @@ import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridCoverage;
-import org.apache.sis.internal.storage.AbstractGridResource;
 import org.apache.sis.referencing.operation.transform.MathTransforms;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.util.iso.Names;
@@ -102,7 +102,7 @@ public final strictfp class 
MultiResolutionCoverageLoaderTest extends TestCase {
      * A dummy resource with arbitrary resolutions for testing purpose.
      * Resolutions are ordered from finest (smallest numbers) to coarsest 
(largest numbers).
      */
-    private static final class DummyResource extends AbstractGridResource {
+    private static final class DummyResource extends 
AbstractGridCoverageResource {
         /** Creates a dummy resource. */
         DummyResource() {
             super(null);
diff --git 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/BandGroup.java
 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/BandGroup.java
index 4f357a0..9b28c58 100644
--- 
a/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/BandGroup.java
+++ 
b/storage/sis-earth-observation/src/main/java/org/apache/sis/storage/landsat/BandGroup.java
@@ -25,9 +25,9 @@ import org.opengis.util.GenericName;
 import org.opengis.metadata.Metadata;
 import org.apache.sis.storage.Resource;
 import org.apache.sis.storage.Aggregate;
+import org.apache.sis.storage.AbstractResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.event.StoreListeners;
-import org.apache.sis.internal.storage.AbstractResource;
 import org.apache.sis.internal.storage.MetadataBuilder;
 import org.apache.sis.internal.util.UnmodifiableArrayList;
 import org.apache.sis.util.ArraysExt;
diff --git 
a/storage/sis-earth-observation/src/test/java/org/apache/sis/storage/landsat/MetadataReaderTest.java
 
b/storage/sis-earth-observation/src/test/java/org/apache/sis/storage/landsat/MetadataReaderTest.java
index 5355e5d..c7843af 100644
--- 
a/storage/sis-earth-observation/src/test/java/org/apache/sis/storage/landsat/MetadataReaderTest.java
+++ 
b/storage/sis-earth-observation/src/test/java/org/apache/sis/storage/landsat/MetadataReaderTest.java
@@ -20,7 +20,6 @@ import java.util.regex.Matcher;
 import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStreamReader;
-import org.apache.sis.internal.storage.AbstractResource;
 import org.opengis.metadata.Metadata;
 import org.opengis.metadata.acquisition.Context;
 import org.opengis.metadata.acquisition.OperationType;
@@ -34,6 +33,7 @@ import org.opengis.metadata.maintenance.ScopeCode;
 import org.opengis.metadata.spatial.DimensionNameType;
 import org.opengis.util.FactoryException;
 import org.opengis.test.dataset.ContentVerifier;
+import org.apache.sis.storage.AbstractResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.test.TestCase;
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/DiscreteSampling.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/DiscreteSampling.java
index 1302cb7..1ede6de 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/DiscreteSampling.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/DiscreteSampling.java
@@ -18,7 +18,7 @@ package org.apache.sis.internal.netcdf;
 
 import org.apache.sis.setup.GeometryLibrary;
 import org.apache.sis.internal.feature.Geometries;
-import org.apache.sis.internal.storage.AbstractFeatureSet;
+import org.apache.sis.storage.AbstractFeatureSet;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.util.resources.Errors;
 
diff --git 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
index 2638644..8eaaba2 100644
--- 
a/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
+++ 
b/storage/sis-netcdf/src/main/java/org/apache/sis/internal/netcdf/RasterResource.java
@@ -31,7 +31,6 @@ import org.opengis.util.GenericName;
 import org.opengis.metadata.Metadata;
 import org.opengis.referencing.operation.MathTransform1D;
 import org.opengis.referencing.operation.TransformException;
-import org.apache.sis.internal.storage.AbstractGridResource;
 import org.apache.sis.internal.storage.ResourceOnFileSystem;
 import org.apache.sis.internal.util.UnmodifiableArrayList;
 import org.apache.sis.internal.util.Strings;
@@ -43,6 +42,7 @@ import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridDerivation;
 import org.apache.sis.coverage.grid.GridRoundingMode;
 import org.apache.sis.coverage.IllegalSampleDimensionException;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.DataStoreContentException;
 import org.apache.sis.storage.Resource;
@@ -70,7 +70,7 @@ import org.apache.sis.internal.storage.RangeArgument;
  * @since   1.0
  * @module
  */
-public final class RasterResource extends AbstractGridResource implements 
ResourceOnFileSystem {
+public final class RasterResource extends AbstractGridCoverageResource 
implements ResourceOnFileSystem {
     /**
      * Words used in standard (preferred) or long (if no standard) variable 
names which suggest
      * that the variable is a component of a vector. Those words are used in 
heuristic rules
diff --git 
a/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/TestCase.java 
b/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/TestCase.java
index 86f8c4b..5cbab55 100644
--- 
a/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/TestCase.java
+++ 
b/storage/sis-netcdf/src/test/java/org/apache/sis/internal/netcdf/TestCase.java
@@ -22,8 +22,8 @@ import java.util.EnumMap;
 import java.util.Iterator;
 import java.io.IOException;
 import java.lang.reflect.UndeclaredThrowableException;
+import org.apache.sis.storage.AbstractResource;
 import org.apache.sis.storage.DataStoreException;
-import org.apache.sis.internal.storage.AbstractResource;
 import org.apache.sis.internal.netcdf.ucar.DecoderWrapper;
 import org.apache.sis.setup.GeometryLibrary;
 import org.apache.sis.storage.event.StoreListeners;
diff --git 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
index 110d629..4f66b44 100644
--- 
a/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
+++ 
b/storage/sis-sqlstore/src/main/java/org/apache/sis/internal/sql/feature/Table.java
@@ -26,11 +26,11 @@ import java.sql.ResultSet;
 import java.sql.SQLException;
 import org.opengis.util.GenericName;
 import org.opengis.geometry.Envelope;
+import org.apache.sis.storage.AbstractFeatureSet;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.InternalDataStoreException;
 import org.apache.sis.internal.metadata.sql.Reflection;
 import org.apache.sis.internal.metadata.sql.SQLBuilder;
-import org.apache.sis.internal.storage.AbstractFeatureSet;
 import org.apache.sis.util.collection.WeakValueHashMap;
 import org.apache.sis.util.collection.Containers;
 import org.apache.sis.util.collection.TreeTable;
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AggregatedFeatureSet.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AggregatedFeatureSet.java
index b0f33f4..f71a6dc 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AggregatedFeatureSet.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AggregatedFeatureSet.java
@@ -29,6 +29,7 @@ import org.apache.sis.geometry.Envelopes;
 import org.apache.sis.storage.FeatureSet;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.event.StoreListeners;
+import org.apache.sis.storage.AbstractFeatureSet;
 
 // Branch-dependent imports
 import org.opengis.feature.FeatureType;
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ConcatenatedFeatureSet.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ConcatenatedFeatureSet.java
index 0428c6d..1b6645f 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ConcatenatedFeatureSet.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/ConcatenatedFeatureSet.java
@@ -30,6 +30,7 @@ import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.collection.BackingStoreException;
 import org.apache.sis.internal.util.CollectionsExt;
 import org.apache.sis.internal.util.UnmodifiableArrayList;
+import org.apache.sis.storage.AbstractFeatureSet;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.storage.Query;
 
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryFeatureSet.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryFeatureSet.java
index c85de1d..46d842e 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryFeatureSet.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryFeatureSet.java
@@ -19,6 +19,7 @@ package org.apache.sis.internal.storage;
 import java.util.Collection;
 import java.util.OptionalLong;
 import java.util.stream.Stream;
+import org.apache.sis.storage.AbstractFeatureSet;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.util.ArgumentChecks;
 
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryGridResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryGridResource.java
index 7b85d75..9e352e3 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryGridResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MemoryGridResource.java
@@ -28,6 +28,7 @@ import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridRoundingMode;
 import org.apache.sis.image.ImageProcessor;
 import org.apache.sis.internal.util.UnmodifiableArrayList;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.util.ArgumentChecks;
 
@@ -43,7 +44,7 @@ import org.apache.sis.util.ArgumentChecks;
  * @since   1.1
  * @module
  */
-public class MemoryGridResource extends AbstractGridResource {
+public class MemoryGridResource extends AbstractGridCoverageResource {
     /**
      * The grid coverage specified at construction time.
      */
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
index 9ed5d7d..e759ad7 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/MetadataBuilder.java
@@ -73,6 +73,9 @@ import org.apache.sis.metadata.iso.maintenance.*;
 import org.apache.sis.metadata.iso.spatial.*;
 import org.apache.sis.metadata.sql.MetadataStoreException;
 import org.apache.sis.metadata.sql.MetadataSource;
+import org.apache.sis.storage.AbstractResource;
+import org.apache.sis.storage.AbstractFeatureSet;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.coverage.grid.GridGeometry;
@@ -836,7 +839,7 @@ public class MetadataBuilder {
 
     /**
      * Adds default metadata for the specified resource.
-     * This is used for default implementation of {@link 
AbstractGridResource#createMetadata()}.
+     * This is used for default implementation of {@link 
AbstractFeatureSet#createMetadata()}.
      *
      * @param  resource   the resource for which to add metadata.
      * @param  listeners  the listeners to notify in case of warning.
@@ -849,13 +852,13 @@ public class MetadataBuilder {
 
     /**
      * Adds default metadata for the specified resource.
-     * This is used for default implementation of {@link 
AbstractGridResource#createMetadata()}.
+     * This is used for default implementation of {@link 
AbstractGridCoverageResource#createMetadata()}.
      *
      * @param  resource   the resource for which to add metadata.
      * @param  listeners  the listeners to notify in case of warning.
      * @throws DataStoreException if an error occurred while reading metadata 
from the data store.
      */
-    public final void addDefaultMetadata(final AbstractGridResource resource, 
final StoreListeners listeners) throws DataStoreException {
+    public final void addDefaultMetadata(final AbstractGridCoverageResource 
resource, final StoreListeners listeners) throws DataStoreException {
         addDefaultMetadata((AbstractResource) resource, listeners);
         addSpatialRepresentation(null, resource.getGridGeometry(), false);
         for (final SampleDimension band : resource.getSampleDimensions()) {
@@ -2056,7 +2059,7 @@ parse:      for (int i = 0; i < length;) {
      *
      * This method does not add the envelope provided by {@link 
GridGeometry#getEnvelope()}.
      * That envelope appears in a separated node, which can be added by {@link 
#addExtent(Envelope)}.
-     * This separation is required by {@link AbstractGridResource} for 
instance.
+     * This separation is required by {@link AbstractGridCoverageResource} for 
instance.
      *
      * @param  description    a general description of the "grid to CRS" 
transformation, or {@code null} if none.
      *                        Can also be specified later by a call to {@link 
#setGridToCRS(CharSequence)}.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridResource.java
index 0baf6b3..7dcbc88 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/TiledGridResource.java
@@ -34,6 +34,7 @@ import org.apache.sis.coverage.grid.GridDerivation;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridRoundingMode;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.RasterLoadingStrategy;
 import org.apache.sis.storage.event.StoreListeners;
@@ -54,7 +55,7 @@ import static 
org.apache.sis.internal.storage.TiledGridCoverage.Y_DIMENSION;
  * @since   1.1
  * @module
  */
-public abstract class TiledGridResource extends AbstractGridResource {
+public abstract class TiledGridResource extends AbstractGridCoverageResource {
     /**
      * A key in the {@link #rasters} cache of tiles.
      * Each key shall be unique within its enclosing {@link TiledGridResource} 
instance.
@@ -182,7 +183,7 @@ public abstract class TiledGridResource extends 
AbstractGridResource {
      *         {@code false} if the reader needs to load all bands regardless 
the {@code range} subset.
      * @throws DataStoreException if an error occurred while fetching the 
sample model.
      *
-     * @see AbstractGridResource.RangeArgument#select(SampleModel, boolean)
+     * @see RangeArgument#select(SampleModel, boolean)
      */
     protected boolean getDissociableBands() throws DataStoreException {
         return getSampleModel() instanceof ComponentSampleModel;
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractFeatureSet.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractFeatureSet.java
similarity index 93%
rename from 
storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractFeatureSet.java
rename to 
storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractFeatureSet.java
index ebc73a9..e8c094b 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractFeatureSet.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractFeatureSet.java
@@ -14,16 +14,14 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.storage;
+package org.apache.sis.storage;
 
 import java.util.Optional;
 import java.util.OptionalLong;
 import org.opengis.util.GenericName;
 import org.opengis.metadata.Metadata;
-import org.apache.sis.storage.DataStore;
-import org.apache.sis.storage.DataStoreException;
-import org.apache.sis.storage.FeatureSet;
 import org.apache.sis.storage.event.StoreListeners;
+import org.apache.sis.internal.storage.MetadataBuilder;
 
 // Branch-dependent imports
 import org.opengis.feature.FeatureType;
@@ -48,12 +46,13 @@ import org.opengis.feature.FeatureType;
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
- * @since   0.8
+ * @since   1.2
  * @module
  */
 public abstract class AbstractFeatureSet extends AbstractResource implements 
FeatureSet {
     /**
-     * Creates a new resource.
+     * Creates a new resource. This resource will have its own set of 
listeners,
+     * but the listeners of the data store that created this resource will be 
notified as well.
      *
      * @param  parent  listeners of the parent resource or data store, or 
{@code null} if none.
      *         This is usually the listeners of the {@link DataStore} that 
created this resource.
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractGridResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
similarity index 95%
rename from 
storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractGridResource.java
rename to 
storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
index bf415d0..0965050 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractGridResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractGridCoverageResource.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.storage;
+package org.apache.sis.storage;
 
 import java.util.Locale;
 import java.util.Optional;
@@ -28,11 +28,6 @@ import org.opengis.geometry.Envelope;
 import org.opengis.metadata.Metadata;
 import org.opengis.referencing.operation.TransformException;
 import org.opengis.util.FactoryException;
-import org.apache.sis.storage.DataStoreException;
-import org.apache.sis.storage.DataStoreContentException;
-import org.apache.sis.storage.DataStoreReferencingException;
-import org.apache.sis.storage.NoSuchDataException;
-import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridExtent;
@@ -44,6 +39,8 @@ import org.apache.sis.util.logging.PerformanceLevel;
 import org.apache.sis.internal.storage.io.IOUtilities;
 import org.apache.sis.internal.util.StandardDateFormat;
 import org.apache.sis.internal.jdk9.JDK9;
+import org.apache.sis.internal.storage.MetadataBuilder;
+import org.apache.sis.internal.storage.Resources;
 
 
 /**
@@ -65,17 +62,18 @@ import org.apache.sis.internal.jdk9.JDK9;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
- * @since   0.8
+ * @since   1.2
  * @module
  */
-public abstract class AbstractGridResource extends AbstractResource implements 
GridCoverageResource {
+public abstract class AbstractGridCoverageResource extends AbstractResource 
implements GridCoverageResource {
     /**
-     * Creates a new resource.
+     * Creates a new resource. This resource will have its own set of 
listeners,
+     * but the listeners of the data store that created this resource will be 
notified as well.
      *
      * @param  parent  listeners of the parent resource or data store, or 
{@code null} if none.
      *         This is usually the listeners of the {@link DataStore} that 
created this resource.
      */
-    protected AbstractGridResource(final StoreListeners parent) {
+    protected AbstractGridCoverageResource(final StoreListeners parent) {
         super(parent);
     }
 
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractResource.java
 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
similarity index 98%
rename from 
storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractResource.java
rename to 
storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
index 24f9e4d..4cf0f90 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/internal/storage/AbstractResource.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/AbstractResource.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.storage;
+package org.apache.sis.storage;
 
 import java.util.Locale;
 import java.util.Optional;
@@ -27,13 +27,11 @@ import org.apache.sis.metadata.iso.DefaultMetadata;
 import org.apache.sis.referencing.IdentifiedObjects;
 import org.apache.sis.geometry.Envelopes;
 import org.apache.sis.referencing.CRS;
-import org.apache.sis.storage.Resource;
-import org.apache.sis.storage.DataStore;
-import org.apache.sis.storage.DataStoreException;
-import org.apache.sis.storage.FeatureSet;
 import org.apache.sis.storage.event.StoreEvent;
 import org.apache.sis.storage.event.StoreListener;
 import org.apache.sis.storage.event.StoreListeners;
+import org.apache.sis.internal.storage.Resources;
+import org.apache.sis.internal.storage.MetadataBuilder;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.logging.Logging;
 import org.apache.sis.xml.NilReason;
@@ -57,7 +55,7 @@ import org.apache.sis.xml.NilReason;
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.2
- * @since   0.8
+ * @since   1.2
  * @module
  */
 public abstract class AbstractResource implements Resource {
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageSubset.java 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageSubset.java
index fd8ebd6..6e8e290 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageSubset.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/CoverageSubset.java
@@ -29,7 +29,6 @@ import org.apache.sis.coverage.grid.GridClippingMode;
 import org.apache.sis.coverage.grid.DisjointExtentException;
 import org.apache.sis.storage.event.StoreListeners;
 import org.apache.sis.internal.storage.Resources;
-import org.apache.sis.internal.storage.AbstractGridResource;
 import org.apache.sis.internal.util.UnmodifiableArrayList;
 
 
@@ -43,7 +42,7 @@ import org.apache.sis.internal.util.UnmodifiableArrayList;
  * @since   1.1
  * @module
  */
-final class CoverageSubset extends AbstractGridResource {
+final class CoverageSubset extends AbstractGridCoverageResource {
     /**
      * The coverage resource instance which provides the data.
      */
diff --git 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSubset.java 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSubset.java
index c0cfb4e..ea99c44 100644
--- 
a/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSubset.java
+++ 
b/storage/sis-storage/src/main/java/org/apache/sis/storage/FeatureSubset.java
@@ -19,7 +19,6 @@ package org.apache.sis.storage;
 import java.util.OptionalLong;
 import java.util.stream.Stream;
 import org.apache.sis.internal.feature.FeatureUtilities;
-import org.apache.sis.internal.storage.AbstractFeatureSet;
 import org.apache.sis.internal.storage.Resources;
 import org.apache.sis.storage.event.StoreListeners;
 
@@ -39,7 +38,7 @@ import org.opengis.filter.SortBy;
  *
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.2
  * @since   1.0
  * @module
  */
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/RangeArgumentTest.java
 
b/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/RangeArgumentTest.java
index 5cc7437..9a5ea55 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/RangeArgumentTest.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/internal/storage/RangeArgumentTest.java
@@ -22,6 +22,7 @@ import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridCoverage;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.util.Localized;
 import org.junit.Test;
@@ -41,7 +42,7 @@ public final strictfp class RangeArgumentTest extends 
TestCase implements Locali
     /**
      * A resource performing no operation.
      */
-    private final AbstractGridResource resource = new 
AbstractGridResource(null) {
+    private final AbstractGridCoverageResource resource = new 
AbstractGridCoverageResource(null) {
         @Override public GridGeometry          getGridGeometry()     {throw 
new UnsupportedOperationException();}
         @Override public List<SampleDimension> getSampleDimensions() {throw 
new UnsupportedOperationException();}
         @Override public GridCoverage read(GridGeometry d, int... r) {throw 
new UnsupportedOperationException();}
@@ -58,7 +59,7 @@ public final strictfp class RangeArgumentTest extends 
TestCase implements Locali
     }
 
     /**
-     * Tests {@link AbstractGridResource.RangeArgument} for data organized in 
a banded sample model.
+     * Tests {@link RangeArgument} for data organized in a banded sample model.
      * This is the state when no {@code insert} method is invoked.
      */
     @Test
@@ -79,7 +80,7 @@ public final strictfp class RangeArgumentTest extends 
TestCase implements Locali
     }
 
     /**
-     * Tests {@link AbstractGridResource.RangeArgument} for data organized in 
an interleaved sample model.
+     * Tests {@link RangeArgument} for data organized in an interleaved sample 
model.
      * This is the state when the {@code insert} methods are invoked.
      */
     @Test
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/storage/GridResourceMock.java
 
b/storage/sis-storage/src/test/java/org/apache/sis/storage/GridResourceMock.java
index 0971c06..004c33b 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/storage/GridResourceMock.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/storage/GridResourceMock.java
@@ -24,7 +24,6 @@ import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridCoverage2D;
 import org.apache.sis.coverage.grid.GridExtent;
 import org.apache.sis.coverage.grid.GridGeometry;
-import org.apache.sis.internal.storage.AbstractGridResource;
 
 import static org.junit.Assert.*;
 
@@ -41,7 +40,7 @@ import static org.junit.Assert.*;
  * @version 1.1
  * @since   1.1
  */
-final strictfp class GridResourceMock extends AbstractGridResource {
+final strictfp class GridResourceMock extends AbstractGridCoverageResource {
     /**
      * Grid geometry of this resource, specified at construction time.
      */
diff --git 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/CoverageReadConsistency.java
 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/CoverageReadConsistency.java
index f81231d..8d040d8 100644
--- 
a/storage/sis-storage/src/test/java/org/apache/sis/test/storage/CoverageReadConsistency.java
+++ 
b/storage/sis-storage/src/test/java/org/apache/sis/test/storage/CoverageReadConsistency.java
@@ -27,10 +27,10 @@ import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridDerivation;
 import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridExtent;
+import org.apache.sis.storage.AbstractGridCoverageResource;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.GridCoverageResource;
 import org.apache.sis.storage.RasterLoadingStrategy;
-import org.apache.sis.internal.storage.AbstractGridResource;
 import org.apache.sis.internal.util.StandardDateFormat;
 import org.apache.sis.internal.util.Numerics;
 import org.apache.sis.image.PixelIterator;
@@ -255,9 +255,9 @@ public strictfp class CoverageReadConsistency extends 
TestCase {
      * Applies a random configuration on the resource.
      */
     private void randomConfigureResource() throws DataStoreException {
-        if (resource instanceof AbstractGridResource) {
+        if (resource instanceof AbstractGridCoverageResource) {
             final RasterLoadingStrategy[] choices = 
RasterLoadingStrategy.values();
-            ((AbstractGridResource) 
resource).setLoadingStrategy(choices[random.nextInt(choices.length)]);
+            ((AbstractGridCoverageResource) 
resource).setLoadingStrategy(choices[random.nextInt(choices.length)]);
         }
     }
 

Reply via email to