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 d70355df3b Reintroduce the `GenericName` argument in 
`MemoryGridCoverageResource`.
d70355df3b is described below

commit d70355df3ba0bc9a58de868b4f593e4cbecb7e6b
Author: Martin Desruisseaux <[email protected]>
AuthorDate: Mon Nov 3 10:30:08 2025 +0100

    Reintroduce the `GenericName` argument in `MemoryGridCoverageResource`.
---
 .../sis/storage/MemoryGridCoverageResource.java    | 27 ++++++++++++++++++----
 .../aggregate/BandAggregateGridResource.java       |  2 +-
 .../aggregate/ConcatenatedGridResource.java        |  2 +-
 .../sis/storage/aggregate/CoverageAggregator.java  |  2 +-
 .../storage/image/WritableSingleImageStore.java    |  2 +-
 .../org/apache/sis/storage/CoverageSubsetTest.java |  2 +-
 .../storage/MemoryGridCoverageResourceTest.java    |  2 +-
 .../aggregate/BandAggregateGridResourceTest.java   |  2 +-
 .../sis/storage/aggregate/OpaqueGridResource.java  |  2 +-
 .../coveragejson/CoverageJsonStoreTest.java        |  2 +-
 10 files changed, 32 insertions(+), 13 deletions(-)

diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/MemoryGridCoverageResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/MemoryGridCoverageResource.java
index 3d0ed813a4..1dfbb95d29 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/MemoryGridCoverageResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/MemoryGridCoverageResource.java
@@ -19,7 +19,9 @@ package org.apache.sis.storage;
 import java.util.List;
 import java.util.Arrays;
 import java.util.Objects;
+import java.util.Optional;
 import java.awt.image.RenderedImage;
+import org.opengis.util.GenericName;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridCoverageBuilder;
@@ -51,6 +53,11 @@ public class MemoryGridCoverageResource extends 
AbstractGridCoverageResource {
      */
     private static final int BIDIMENSIONAL = 2;
 
+    /**
+     * The resource identifier, or {@code null} if none.
+     */
+    private final GenericName identifer;
+
     /**
      * The grid coverage specified at construction time.
      *
@@ -74,16 +81,28 @@ public class MemoryGridCoverageResource extends 
AbstractGridCoverageResource {
     /**
      * Creates a new coverage stored in memory.
      *
-     * @param parent     the parent resource, or {@code null} if none.
-     * @param coverage   stored coverage retained as-is (not copied). Cannot 
be null.
-     * @param processor  the grid coverage processor for selecting bands, or 
{@code null} for default.
+     * @param parent      the parent resource, or {@code null} if none.
+     * @param identifier  resource identifier, or {@code null} if none.
+     * @param coverage    stored coverage retained as-is (not copied). Cannot 
be null.
+     * @param processor   the grid coverage processor for selecting bands, or 
{@code null} for default.
      */
-    public MemoryGridCoverageResource(final Resource parent, final 
GridCoverage coverage, final GridCoverageProcessor processor) {
+    public MemoryGridCoverageResource(final Resource parent, final GenericName 
identifier,
+                                      final GridCoverage coverage, final 
GridCoverageProcessor processor)
+    {
         super(parent);
+        this.identifer = identifier;
         this.coverage  = Objects.requireNonNull(coverage);
         this.processor = (processor != null) ? processor : new 
GridCoverageProcessor();
     }
 
+    /**
+     * Returns the resource identifier specified at construction time, if any.
+     */
+    @Override
+    public Optional<GenericName> getIdentifier() {
+        return Optional.ofNullable(identifer);
+    }
+
     /**
      * Returns the grid coverage wrapped by this resource.
      * The grid coverage returned by this method shall be the same or 
equivalent
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/BandAggregateGridResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/BandAggregateGridResource.java
index beea754900..6c6135b827 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/BandAggregateGridResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/BandAggregateGridResource.java
@@ -189,7 +189,7 @@ final class BandAggregateGridResource extends 
AggregatedResource implements Grid
         if (count != 0) {
             coverages     = ArraysExt.resize(coverages,     count);
             coverageBands = ArraysExt.resize(coverageBands, count);
-            var aggregate = new MemoryGridCoverageResource(parent, 
processor.aggregateRanges(coverages, coverageBands), processor);
+            var aggregate = new MemoryGridCoverageResource(parent, null, 
processor.aggregateRanges(coverages, coverageBands), processor);
             for (int i=0; i<sources.length; i++) {
                 if (sources[i] == null) {
                     sources[i] = aggregate;
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridResource.java
index b7e01be507..3bd7e8d977 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/ConcatenatedGridResource.java
@@ -481,7 +481,7 @@ final class ConcatenatedGridResource extends 
AggregatedResource implements GridC
                 if (coverage != null) {
                     GridGeometry geometry = coverage.getGridGeometry();
                     GridExtent inGroup = domain.extentOf(geometry, 
GridSlice.CELL_ANCHOR, GridRoundingMode.NEAREST);
-                    var resource = new MemoryGridCoverageResource(this, 
coverage, processor);
+                    var resource = new MemoryGridCoverageResource(this, null, 
coverage, processor);
                     selected[i] = selected[i].resolve(resource, 
geometry.getExtent(), inGroup);
                 }
             }
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/CoverageAggregator.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/CoverageAggregator.java
index 8c39f0b6d3..ddc087dd55 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/CoverageAggregator.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/aggregate/CoverageAggregator.java
@@ -205,7 +205,7 @@ public final class CoverageAggregator extends 
Group<GroupBySample> {
      */
     public void add(final GridCoverage coverage) {
         try {
-            add(new MemoryGridCoverageResource(asPseudoResource(), coverage, 
processor));
+            add(new MemoryGridCoverageResource(asPseudoResource(), null, 
coverage, processor));
         } catch (DataStoreException e) {
             /*
              * `DataStoreException` are never thrown by 
`MemoryGridCoverageResource`.
diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WritableSingleImageStore.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WritableSingleImageStore.java
index fa05ffb012..d75f393d47 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WritableSingleImageStore.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/image/WritableSingleImageStore.java
@@ -168,7 +168,7 @@ final class WritableSingleImageStore extends WritableStore 
implements WritableGr
     public void write(final GridCoverage coverage, final Option... options) 
throws DataStoreException {
         try {
             if (isMultiImages() == 0) {
-                add(new MemoryGridCoverageResource(this, coverage, null));
+                add(new MemoryGridCoverageResource(this, null, coverage, 
null));
             } else {
                 delegate().write(coverage, options);
             }
diff --git 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/CoverageSubsetTest.java
 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/CoverageSubsetTest.java
index 2d1fad781c..f9ce039f01 100644
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/CoverageSubsetTest.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/CoverageSubsetTest.java
@@ -70,7 +70,7 @@ public final class CoverageSubsetTest extends TestCase {
         final var domain = new GridGeometry(extent, region, 
GridOrientation.HOMOTHETY);
         final var band   = new 
SampleDimension.Builder().addQuantitative("101-based row-major order pixel 
number", 101, 105, 1, 0, Units.UNITY).build();
         final var buffer = new DataBufferInt(values(), WIDTH * HEIGHT);
-        return new MemoryGridCoverageResource(null, new 
BufferedGridCoverage(domain, List.of(band), buffer), null);
+        return new MemoryGridCoverageResource(null, null, new 
BufferedGridCoverage(domain, List.of(band), buffer), null);
     }
 
     /**
diff --git 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/MemoryGridCoverageResourceTest.java
 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/MemoryGridCoverageResourceTest.java
index eb59bca38f..e900922d2f 100644
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/MemoryGridCoverageResourceTest.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/MemoryGridCoverageResourceTest.java
@@ -68,7 +68,7 @@ public final class MemoryGridCoverageResourceTest extends 
TestCase {
         gridToCRS = new AffineTransform2D(2, 0, 0, 3, 0, 0);
         final var grid = new GridGeometry(new GridExtent(WIDTH, HEIGHT), 
PixelInCell.CELL_CENTER, gridToCRS, crs);
         final var image = new BufferedImage(WIDTH, HEIGHT, 
BufferedImage.TYPE_BYTE_BINARY);
-        resource = new MemoryGridCoverageResource(null, new 
GridCoverage2D(grid, null, image), null);
+        resource = new MemoryGridCoverageResource(null, null, new 
GridCoverage2D(grid, null, image), null);
     }
 
     /**
diff --git 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/BandAggregateGridResourceTest.java
 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/BandAggregateGridResourceTest.java
index 4c02d10c85..8dab11aee0 100644
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/BandAggregateGridResourceTest.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/BandAggregateGridResourceTest.java
@@ -201,7 +201,7 @@ public final class BandAggregateGridResourceTest extends 
TestCase {
             System.arraycopy(bandValues, 0, data, i, numBands);
         }
         final var values = new DataBufferInt(data, data.length);
-        final var r = new MemoryGridCoverageResource(null, new 
BufferedGridCoverage(domain, samples, values), null);
+        final var r = new MemoryGridCoverageResource(null, null, new 
BufferedGridCoverage(domain, samples, values), null);
         return opaque ? new OpaqueGridResource(r) : r;
     }
 
diff --git 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/OpaqueGridResource.java
 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/OpaqueGridResource.java
index 4bb8c7272e..61328dc63f 100644
--- 
a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/OpaqueGridResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/aggregate/OpaqueGridResource.java
@@ -38,7 +38,7 @@ final class OpaqueGridResource extends GridResourceWrapper {
      * Creates a new wrapper for the given coverage.
      */
     OpaqueGridResource(final GridCoverage source) {
-        this.source = new MemoryGridCoverageResource(null, source, null);
+        this.source = new MemoryGridCoverageResource(null, null, source, null);
     }
 
     /**
diff --git 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
index 0a9d1d9027..8a358d4462 100644
--- 
a/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
+++ 
b/incubator/src/org.apache.sis.storage.coveragejson/test/org/apache/sis/storage/coveragejson/CoverageJsonStoreTest.java
@@ -132,7 +132,7 @@ public class CoverageJsonStoreTest {
             gcb.setValues(image);
             final GridCoverage coverage = gcb.build();
 
-            final GridCoverageResource gcr = new 
MemoryGridCoverageResource(null, coverage, null);
+            final GridCoverageResource gcr = new 
MemoryGridCoverageResource(null, null, coverage, null);
 
             aggregate.add(gcr);
 

Reply via email to