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();
}
/**