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 cb2d2c0bcba90f5bc2ebbaffb912295d220ef330 Author: Martin Desruisseaux <[email protected]> AuthorDate: Wed Jul 30 18:38:03 2025 +0200 Keep only one constructor for the `MemoryGridResource` internal class. Since this is an internal class, we can change later if not convenient. Having only one constructor make easier to see in the source codes that use this class that an information is not provided. --- .../aggregate/BandAggregateGridResource.java | 2 +- .../aggregate/ConcatenatedGridResource.java | 2 +- .../sis/storage/aggregate/CoverageAggregator.java | 2 +- .../sis/storage/base/MemoryGridResource.java | 35 +++++++++------------- .../storage/image/WritableSingleImageStore.java | 2 +- .../org/apache/sis/storage/CoverageSubsetTest.java | 2 +- .../aggregate/BandAggregateGridResourceTest.java | 2 +- .../sis/storage/aggregate/OpaqueGridResource.java | 2 +- .../sis/storage/base/MemoryGridResourceTest.java | 2 +- .../coveragejson/CoverageJsonStoreTest.java | 2 +- 10 files changed, 23 insertions(+), 30 deletions(-) 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 df983ea9d7..95e4474bd9 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 @@ -190,7 +190,7 @@ final class BandAggregateGridResource extends AggregatedResource implements Grid if (count != 0) { coverages = ArraysExt.resize(coverages, count); coverageBands = ArraysExt.resize(coverageBands, count); - var aggregate = new MemoryGridResource(parentListeners, processor.aggregateRanges(coverages, coverageBands), processor); + var aggregate = new MemoryGridResource(parentListeners, 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 e6f3c18f8a..106d3a0fd6 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 MemoryGridResource(listeners, coverage, processor); + var resource = new MemoryGridResource(listeners, 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 d55ac9dd53..35f0b36fdd 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 @@ -197,7 +197,7 @@ public final class CoverageAggregator extends Group<GroupBySample> { */ public void add(final GridCoverage coverage) { try { - add(new MemoryGridResource(listeners, coverage, processor)); + add(new MemoryGridResource(listeners, null, coverage, processor)); } catch (DataStoreException e) { /* * `DataStoreException` are never thrown by `MemoryGridResource`. 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 6623c5a1b8..9f768646d5 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 @@ -19,8 +19,9 @@ package org.apache.sis.storage.base; import java.util.List; import java.util.Arrays; import java.util.Objects; -import java.awt.image.RenderedImage; 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; @@ -30,9 +31,7 @@ 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; /** @@ -60,17 +59,6 @@ public final class MemoryGridResource extends AbstractGridCoverageResource { */ private final GenericName identifer; - /** - * Creates a new coverage stored in memory. - * - * @param parent listeners of 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. - */ - public MemoryGridResource(final StoreListeners parent, final GridCoverage coverage, final GridCoverageProcessor processor) { - this(parent, null, coverage, processor); - } - /** * Creates a new coverage stored in memory. * @@ -79,15 +67,20 @@ public final class MemoryGridResource extends AbstractGridCoverageResource { * @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) { + public MemoryGridResource(final StoreListeners parent, final 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(); } + /** + * Returns the resource identifier specified at construction time, if any. + */ @Override - public Optional<GenericName> getIdentifier() throws DataStoreException { + public Optional<GenericName> getIdentifier() { return Optional.ofNullable(identifer); } @@ -221,8 +214,8 @@ public final class MemoryGridResource extends AbstractGridCoverageResource { public boolean equals(final Object obj) { if (obj instanceof MemoryGridResource) { final var other = (MemoryGridResource) obj; - return coverage.equals(other.coverage) && - Objects.equals(identifer, other.identifer) && + return Objects.equals(identifer, other.identifer) && + coverage.equals(other.coverage) && processor.equals(other.processor) && listeners.equals(other.listeners); } @@ -237,9 +230,9 @@ public final class MemoryGridResource extends AbstractGridCoverageResource { @Override public int hashCode() { return coverage.hashCode() - + 17*Objects.hashCode(identifer) - + 31*processor.hashCode() - + 37*listeners.hashCode(); + + 17 * Objects.hashCode(identifer) + + 31 * processor.hashCode() + + 37 * listeners.hashCode(); } /** 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 b2f4102dad..3c00dfd441 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 MemoryGridResource(listeners, coverage, null)); + add(new MemoryGridResource(listeners, 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 63432ba6e7..8c3fa3e71b 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 MemoryGridResource(null, new BufferedGridCoverage(domain, List.of(band), buffer), null); + return new MemoryGridResource(null, null, new BufferedGridCoverage(domain, List.of(band), buffer), 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 d50ec713fb..adc7968511 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 @@ -200,7 +200,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 MemoryGridResource(null, new BufferedGridCoverage(domain, samples, values), null); + final var r = new MemoryGridResource(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 724e791f97..671b6b3e83 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 MemoryGridResource(null, source, null); + this.source = new MemoryGridResource(null, null, source, null); } /** diff --git a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/base/MemoryGridResourceTest.java b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/base/MemoryGridResourceTest.java index 37d4c2e187..62f0140ec3 100644 --- a/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/base/MemoryGridResourceTest.java +++ b/endorsed/src/org.apache.sis.storage/test/org/apache/sis/storage/base/MemoryGridResourceTest.java @@ -67,7 +67,7 @@ public final class MemoryGridResourceTest extends TestCase { gridToCRS = new AffineTransform2D(2, 0, 0, 3, 0, 0); final GridGeometry grid = new GridGeometry(new GridExtent(WIDTH, HEIGHT), PixelInCell.CELL_CENTER, gridToCRS, crs); final BufferedImage image = new BufferedImage(WIDTH, HEIGHT, BufferedImage.TYPE_BYTE_BINARY); - resource = new MemoryGridResource(null, new GridCoverage2D(grid, null, image), null); + resource = new MemoryGridResource(null, null, new GridCoverage2D(grid, null, image), 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 ab3a7ffea8..eda64970b1 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 MemoryGridResource(null, coverage, null); + final GridCoverageResource gcr = new MemoryGridResource(null, null, coverage, null); aggregate.add(gcr);
