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);