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

jsorel 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 1cad082c6e Add resource identifier parameter on MemoryGridResource
1cad082c6e is described below

commit 1cad082c6e1710e12849d4a78134bba42ab42a54
Author: jsorel <[email protected]>
AuthorDate: Wed Jul 30 09:30:58 2025 +0200

    Add resource identifier parameter on MemoryGridResource
---
 .../sis/storage/base/MemoryGridResource.java       | 32 +++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)

diff --git 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MemoryGridResource.java
 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MemoryGridResource.java
index e6af21702f..6623c5a1b8 100644
--- 
a/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MemoryGridResource.java
+++ 
b/endorsed/src/org.apache.sis.storage/main/org/apache/sis/storage/base/MemoryGridResource.java
@@ -20,6 +20,7 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.Objects;
 import java.awt.image.RenderedImage;
+import java.util.Optional;
 import org.apache.sis.coverage.SampleDimension;
 import org.apache.sis.coverage.grid.GridCoverage;
 import org.apache.sis.coverage.grid.GridCoverageBuilder;
@@ -29,7 +30,9 @@ import org.apache.sis.coverage.grid.GridGeometry;
 import org.apache.sis.coverage.grid.GridRoundingMode;
 import org.apache.sis.coverage.grid.PixelInCell;
 import org.apache.sis.storage.AbstractGridCoverageResource;
+import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.event.StoreListeners;
+import org.opengis.util.GenericName;
 
 
 /**
@@ -52,6 +55,11 @@ public final class MemoryGridResource extends 
AbstractGridCoverageResource {
      */
     private final GridCoverageProcessor processor;
 
+    /**
+     * The resource identifier, may be null.
+     */
+    private final GenericName identifer;
+
     /**
      * Creates a new coverage stored in memory.
      *
@@ -60,11 +68,29 @@ public final class MemoryGridResource extends 
AbstractGridCoverageResource {
      * @param  processor  the grid coverage processor for selecting bands, or 
{@code null} for default.
      */
     public MemoryGridResource(final StoreListeners parent, final GridCoverage 
coverage, final GridCoverageProcessor processor) {
+        this(parent, null, coverage, processor);
+    }
+
+    /**
+     * Creates a new coverage stored in memory.
+     *
+     * @param  parent     listeners of 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 MemoryGridResource(final StoreListeners parent, GenericName 
identifier, final GridCoverage coverage, final GridCoverageProcessor processor) 
{
         super(parent, false);
+        this.identifer = identifier;
         this.coverage  = Objects.requireNonNull(coverage);
         this.processor = (processor != null) ? processor : new 
GridCoverageProcessor();
     }
 
+    @Override
+    public Optional<GenericName> getIdentifier() throws DataStoreException {
+        return Optional.ofNullable(identifer);
+    }
+
     /**
      * Returns information about the <i>domain</i> of wrapped grid coverage.
      *
@@ -196,6 +222,7 @@ public final class MemoryGridResource extends 
AbstractGridCoverageResource {
         if (obj instanceof MemoryGridResource) {
             final var other = (MemoryGridResource) obj;
             return coverage.equals(other.coverage)   &&
+                   Objects.equals(identifer, other.identifer) &&
                    processor.equals(other.processor) &&
                    listeners.equals(other.listeners);
         }
@@ -209,7 +236,10 @@ public final class MemoryGridResource extends 
AbstractGridCoverageResource {
      */
     @Override
     public int hashCode() {
-        return coverage.hashCode() + 31*processor.hashCode() + 
37*listeners.hashCode();
+        return coverage.hashCode()
+                + 17*Objects.hashCode(identifer)
+                + 31*processor.hashCode()
+                + 37*listeners.hashCode();
     }
 
     /**

Reply via email to