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 2cb6525c48b5302dd21c5faf0377b8c04bf83ef1
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Aug 13 10:36:02 2022 +0200

    Move isoline generation code to its own package.
---
 .../apache/sis/gui/coverage/CoverageCanvas.java    |  2 +-
 .../apache/sis/gui/coverage/IsolineRenderer.java   |  2 +-
 .../sis/gui/coverage/StyledRenderingData.java      |  2 +-
 .../java/org/apache/sis/image/ImageProcessor.java  |  2 +-
 .../internal/processing/image/TiledProcess.java    |  6 +--
 .../processing/{image => isoline}/Isolines.java    | 51 +++++++++++-----------
 .../IsolineTracer.java => isoline/Tracer.java}     | 12 ++---
 .../internal/processing/isoline/package-info.java  | 32 ++++++++++++++
 .../org/apache/sis/image/ImageProcessorTest.java   |  4 +-
 .../{image => isoline}/IsolinesTest.java           |  2 +-
 .../StepsViewer.java}                              | 12 ++---
 .../apache/sis/test/suite/FeatureTestSuite.java    |  2 +-
 12 files changed, 81 insertions(+), 48 deletions(-)

diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
index daf385014a..eab02b084d 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/CoverageCanvas.java
@@ -70,7 +70,7 @@ import org.apache.sis.gui.map.MapCanvasAWT;
 import org.apache.sis.portrayal.RenderException;
 import org.apache.sis.internal.map.coverage.RenderingWorkaround;
 import org.apache.sis.internal.coverage.j2d.TileErrorHandler;
-import org.apache.sis.internal.processing.image.Isolines;
+import org.apache.sis.internal.processing.isoline.Isolines;
 import org.apache.sis.internal.gui.BackgroundThreads;
 import org.apache.sis.internal.gui.ExceptionReporter;
 import org.apache.sis.internal.gui.GUIUtilities;
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
index 63917179df..d816ab68b8 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/IsolineRenderer.java
@@ -38,7 +38,7 @@ import javafx.collections.ListChangeListener;
 import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.internal.gui.control.ColorRamp;
-import org.apache.sis.internal.processing.image.Isolines;
+import org.apache.sis.internal.processing.isoline.Isolines;
 import org.apache.sis.internal.coverage.j2d.ImageUtilities;
 import org.apache.sis.internal.gui.control.ValueColorMapper.Step;
 import org.apache.sis.internal.feature.j2d.EmptyShape;
diff --git 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
index 0709fe82c2..ed19c7d66d 100644
--- 
a/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
+++ 
b/application/sis-javafx/src/main/java/org/apache/sis/gui/coverage/StyledRenderingData.java
@@ -24,7 +24,7 @@ import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
 import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.image.ErrorHandler;
-import org.apache.sis.internal.processing.image.Isolines;
+import org.apache.sis.internal.processing.isoline.Isolines;
 import org.apache.sis.internal.map.coverage.RenderingData;
 
 
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java 
b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
index ef4923f5d7..23575b6a64 100644
--- a/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/ImageProcessor.java
@@ -51,7 +51,7 @@ import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.collection.WeakHashSet;
 import org.apache.sis.internal.system.Modules;
 import org.apache.sis.internal.coverage.j2d.TiledImage;
-import org.apache.sis.internal.processing.image.Isolines;
+import org.apache.sis.internal.processing.isoline.Isolines;
 import org.apache.sis.internal.feature.Resources;
 import org.apache.sis.measure.NumberRange;
 import org.apache.sis.measure.Units;
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
index 8adf66ec51..79e33132f2 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/TiledProcess.java
@@ -56,14 +56,14 @@ import org.apache.sis.util.ArgumentChecks;
  * Consequently tile size will be determined by other considerations such as 
the number of processors.
  *
  * @author  Martin Desruisseaux (Geomatys)
- * @version 1.1
+ * @version 1.3
  *
  * @param  <R>  the type of value computed as a result of this process.
  *
  * @since 1.1
  * @module
  */
-abstract class TiledProcess<R> {
+public abstract class TiledProcess<R> {
     /**
      * Minimal "tile" size for sub-tasks computation. That size should not be 
too small because the
      * fork/join processes have some extra cost compared to processing the 
whole image as one single tile.
@@ -221,7 +221,7 @@ abstract class TiledProcess<R> {
      * <p>This class implements {@link Callable} for {@code TiledProcess} 
convenience.
      * This implementation details should be ignored; it may change in any 
future version.</p>
      */
-    abstract class Task implements Callable<R> {
+    protected abstract class Task implements Callable<R> {
         /**
          * Index of this {@code Task} instance in the {@link 
TiledProcess#tasks} array.
          */
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
similarity index 92%
rename from 
core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
rename to 
core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
index a3532ecb56..a1e22aa3fe 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/Isolines.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Isolines.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.processing.image;
+package org.apache.sis.internal.processing.isoline;
 
 import java.util.AbstractList;
 import java.util.Arrays;
@@ -31,15 +31,16 @@ import java.awt.image.RenderedImage;
 import org.opengis.coverage.grid.SequenceType;
 import org.opengis.referencing.operation.MathTransform;
 import org.opengis.referencing.operation.TransformException;
+import org.apache.sis.internal.processing.image.TiledProcess;
 import org.apache.sis.image.PixelIterator;
 import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.util.ArraysExt;
 import org.apache.sis.util.resources.Errors;
 import org.apache.sis.util.Debug;
 
-import static 
org.apache.sis.internal.processing.image.IsolineTracer.UPPER_LEFT;
-import static 
org.apache.sis.internal.processing.image.IsolineTracer.UPPER_RIGHT;
-import static 
org.apache.sis.internal.processing.image.IsolineTracer.LOWER_RIGHT;
+import static org.apache.sis.internal.processing.isoline.Tracer.UPPER_LEFT;
+import static org.apache.sis.internal.processing.isoline.Tracer.UPPER_RIGHT;
+import static org.apache.sis.internal.processing.isoline.Tracer.LOWER_RIGHT;
 
 
 /**
@@ -57,14 +58,14 @@ import static 
org.apache.sis.internal.processing.image.IsolineTracer.LOWER_RIGHT
  */
 public final class Isolines {
     /**
-     * Isoline data for each level, sorted in ascending order of {@link 
IsolineTracer.Level#value}.
+     * Isoline data for each level, sorted in ascending order of {@link 
Tracer.Level#value}.
      */
-    private final IsolineTracer.Level[] levels;
+    private final Tracer.Level[] levels;
 
     /**
      * A consumer to notify about the current state of isoline generation, or 
{@code null} if none.
      * This is used for debugging purposes only. This field is temporarily set 
to a non-null value
-     * when using {@code IsolineViewer} (in test package) for following an 
isoline generation step
+     * when using {@code StepsViewer} (in test package) for following an 
isoline generation step
      * by step.
      */
     @Debug
@@ -74,8 +75,8 @@ public final class Isolines {
      * Creates an initially empty set of isolines for the given levels. The 
given {@code values}
      * array should be one of the arrays validated by {@link 
#cloneAndSort(double[][])}.
      */
-    private Isolines(final IsolineTracer tracer, final int band, final 
double[] values, final int width) {
-        levels = new IsolineTracer.Level[values.length];
+    private Isolines(final Tracer tracer, final int band, final double[] 
values, final int width) {
+        levels = new Tracer.Level[values.length];
         for (int i=0; i<values.length; i++) {
             levels[i] = tracer.new Level(band, values[i], width);
         }
@@ -105,7 +106,7 @@ public final class Isolines {
     }
 
     /**
-     * Sets the specified bit on {@link IsolineTracer.Level#isDataAbove} for 
all levels lower than given value.
+     * Sets the specified bit on {@link Tracer.Level#isDataAbove} for all 
levels lower than given value.
      *
      * <h4>How strict equalities are handled</h4>
      * Sample values exactly equal to the isoline value are handled as if they 
were greater. It does not matter
@@ -120,13 +121,13 @@ public final class Isolines {
      * out in the final stage, when copying coordinates in {@link Path2D} 
objects.
      *
      * @param  value a sample values from the image.
-     * @param  bit   {@value IsolineTracer#UPPER_LEFT}, {@value 
IsolineTracer#UPPER_RIGHT},
-     *               {@value IsolineTracer#LOWER_LEFT} or {@value 
IsolineTracer#LOWER_RIGHT}.
+     * @param  bit   {@value Tracer#UPPER_LEFT}, {@value Tracer#UPPER_RIGHT},
+     *               {@value Tracer#LOWER_LEFT} or {@value Tracer#LOWER_RIGHT}.
      *
-     * @see IsolineTracer.Level#nextColumn()
+     * @see Tracer.Level#nextColumn()
      */
     private void setMaskBit(final double value, final int bit) {
-        for (final IsolineTracer.Level level : levels) {
+        for (final Tracer.Level level : levels) {
             if (level.value > value) break;                 // See above 
javadoc for NaN handling.
             level.isDataAbove |= bit;
         }
@@ -196,7 +197,7 @@ public final class Isolines {
      */
     private static Isolines[] flush(final Isolines[] isolines) throws 
TransformException {
         for (final Isolines isoline : isolines) {
-            for (final IsolineTracer.Level level : isoline.levels) {
+            for (final Tracer.Level level : isoline.levels) {
                 level.flush();
             }
         }
@@ -291,11 +292,11 @@ public final class Isolines {
         /*
          * Prepares a window of size 2×2 pixels over pixel values. Window 
elements are traversed
          * by incrementing indices in following order: band, column, row. The 
window content will
-         * be written in this method and read by IsolineTracer.
+         * be written in this method and read by Tracer.
          */
         final int numBands = iterator.getNumBands();
         final double[] window = new double[numBands * 4];
-        final IsolineTracer tracer = new IsolineTracer(window, numBands, 
iterator.getDomain(), gridToCRS);
+        final Tracer tracer = new Tracer(window, numBands, 
iterator.getDomain(), gridToCRS);
         /*
          * Prepare the set of isolines for each band in the image.
          * The number of cells on the horizontal axis is one less
@@ -336,7 +337,7 @@ abort:  while (iterator.next()) {
              *
              *  - Get values on the 4 corners.
              *  - Save value of lower-left corner for use by next row.
-             *  - Initialize `IsolineTracer.Level.isDataAbove` bits for all 
levels.
+             *  - Initialize `Tracer.Level.isDataAbove` bits for all levels.
              *  - Interpolate the first cell.
              */
             System.arraycopy(valuesOnPreviousRow, 0, window, 0, twoPixels);
@@ -350,7 +351,7 @@ abort:  while (iterator.next()) {
                 }
             }
             for (final Isolines iso : isolines) {
-                for (final IsolineTracer.Level level : iso.levels) {
+                for (final Tracer.Level level : iso.levels) {
                     level.interpolate();
                 }
             }
@@ -377,12 +378,12 @@ abort:  while (iterator.next()) {
                 }
                 for (int b=0; b<numBands; b++) {
                     final Isolines iso = isolines[b];
-                    for (final IsolineTracer.Level level : iso.levels) {
+                    for (final Tracer.Level level : iso.levels) {
                         level.nextColumn();
                     }
                     iso.setMaskBit(window[numBands  + b], UPPER_RIGHT);
                     iso.setMaskBit(window[lastPixel + b], LOWER_RIGHT);
-                    for (final IsolineTracer.Level level : iso.levels) {
+                    for (final Tracer.Level level : iso.levels) {
                         level.interpolate();
                     }
                 }
@@ -392,7 +393,7 @@ abort:  while (iterator.next()) {
              * If there is listeners to notify (for debugging purposes), 
notify them.
              */
             for (int b=0; b<numBands; b++) {
-                for (final IsolineTracer.Level level : isolines[b].levels) {
+                for (final Tracer.Level level : isolines[b].levels) {
                     level.finishedRow();
                 }
                 if (LISTENER != null) {
@@ -409,7 +410,7 @@ abort:  while (iterator.next()) {
          * Finished iteration over the whole image.
          */
         for (int b=0; b<numBands; b++) {
-            for (final IsolineTracer.Level level : isolines[b].levels) {
+            for (final Tracer.Level level : isolines[b].levels) {
                 level.finish();
             }
             if (LISTENER != null) {
@@ -426,7 +427,7 @@ abort:  while (iterator.next()) {
      */
     public final NavigableMap<Double,Shape> polylines() {
         final TreeMap<Double,Shape> paths = new TreeMap<>();
-        for (final IsolineTracer.Level level : levels) {
+        for (final Tracer.Level level : levels) {
             final Shape path = level.shape;
             if (path != null) {
                 paths.put(level.value, path);
@@ -534,7 +535,7 @@ abort:  while (iterator.next()) {
     @Debug
     private Path2D toRawPath() {
         final Path2D path = new Path2D.Float();
-        for (final IsolineTracer.Level level : levels) {
+        for (final Tracer.Level level : levels) {
             level.toRawPath(path);
         }
         return path;
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
similarity index 99%
rename from 
core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
rename to 
core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
index b0e55cadd0..3d6abbf6c2 100644
--- 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/image/IsolineTracer.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/Tracer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.processing.image;
+package org.apache.sis.internal.processing.isoline;
 
 import java.util.Arrays;
 import java.util.ArrayList;
@@ -37,7 +37,7 @@ import org.apache.sis.util.Debug;
 /**
  * Iterator over contouring grid cells together with an interpolator and an 
assembler of polyline segments.
  * A single instance of this class is created by {@code Isolines.generate(…)} 
for all bands to process in a
- * given image. {@code IsolineTracer} is used for doing a single iteration 
over all image pixels.
+ * given image. {@code Tracer} is used for doing a single iteration over all 
image pixels.
  *
  * @author  Johann Sorel (Geomatys)
  * @author  Martin Desruisseaux (Geomatys)
@@ -48,7 +48,7 @@ import org.apache.sis.util.Debug;
  * @since 1.1
  * @module
  */
-final class IsolineTracer {
+final class Tracer {
     /**
      * Mask to apply on {@link Level#isDataAbove} for telling that value in a 
corner is higher than the level value.
      * Values are defined in {@code PixelIterator.Window} iteration order: 
from left to right, then top to bottom.
@@ -104,7 +104,7 @@ final class IsolineTracer {
      * @param  domain       pixel coordinates where iteration will happen.
      * @param  gridToCRS    final transform to apply on coordinates (integer 
source coordinates at pixel centers).
      */
-    IsolineTracer(final double[] window, final int pixelStride, final 
Rectangle domain, final MathTransform gridToCRS) {
+    Tracer(final double[] window, final int pixelStride, final Rectangle 
domain, final MathTransform gridToCRS) {
         this.window      = window;
         this.pixelStride = pixelStride;
         this.translateX  = domain.x;
@@ -519,7 +519,7 @@ final class IsolineTracer {
          * {@link #polylineOnLeft} and {@code polylineOnTop} will become empty 
after this method call.
          *
          * @param  polylineOnTop  value of {@code polylinesOnTop[x]}.
-         * @throws TransformException if the {@link IsolineTracer#gridToCRS} 
transform can not be applied.
+         * @throws TransformException if the {@link Tracer#gridToCRS} 
transform can not be applied.
          */
         private void closeLeftWithTop(final Polyline polylineOnTop) throws 
TransformException {
             interpolateMissingLeftSide();
@@ -744,7 +744,7 @@ final class IsolineTracer {
 
         /**
          * Creates a new polyline wrapping the given coordinates. Used for 
wrapping {@link Unclosed}
-         * instances in objects expected by {@link 
IsolineTracer#writeTo(Joiner, Polyline[], boolean)}.
+         * instances in objects expected by {@link Tracer#writeTo(Joiner, 
Polyline[], boolean)}.
          * Those {@code Polyline} instances are temporary.
          */
         Polyline(final double[] data) {
diff --git 
a/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/package-info.java
 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/package-info.java
new file mode 100644
index 0000000000..8f337f51b9
--- /dev/null
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/internal/processing/isoline/package-info.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ * Isolines generation.
+ *
+ * <p><strong>Do not use!</strong></p>
+ *
+ * This package is for internal use by SIS only. Classes in this package
+ * may change in incompatible ways in any future version without notice.
+ *
+ * @author  Johann Sorel (Geomatys)
+ * @author  Martin Desruisseaux (Geomatys)
+ * @version 1.3
+ * @since   1.1
+ * @module
+ */
+package org.apache.sis.internal.processing.isoline;
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/image/ImageProcessorTest.java 
b/core/sis-feature/src/test/java/org/apache/sis/image/ImageProcessorTest.java
index 22dd7aedbc..6a123ba60c 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/image/ImageProcessorTest.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/image/ImageProcessorTest.java
@@ -20,7 +20,7 @@ import java.util.Map;
 import java.awt.Shape;
 import java.awt.image.BufferedImage;
 import java.awt.image.RenderedImage;
-import org.apache.sis.internal.processing.image.IsolinesTest;
+import org.apache.sis.internal.processing.isoline.IsolinesTest;
 import org.apache.sis.test.DependsOn;
 import org.opengis.referencing.operation.MathTransform;
 import org.apache.sis.test.TestCase;
@@ -38,7 +38,7 @@ import static org.apache.sis.test.TestUtilities.getSingleton;
  * @since   1.1
  * @module
  */
-@DependsOn(org.apache.sis.internal.processing.image.IsolinesTest.class)
+@DependsOn(org.apache.sis.internal.processing.isoline.IsolinesTest.class)
 public final strictfp class ImageProcessorTest extends TestCase {
     /**
      * Tests {@link ImageProcessor#isolines(RenderedImage, double[][], 
MathTransform)}.
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolinesTest.java
 
b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
similarity index 99%
rename from 
core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolinesTest.java
rename to 
core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
index 14568a0eb9..e5fa451e0b 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolinesTest.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/IsolinesTest.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.processing.image;
+package org.apache.sis.internal.processing.isoline;
 
 import java.util.Map;
 import java.awt.Shape;
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolineViewer.java
 
b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/StepsViewer.java
similarity index 96%
rename from 
core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolineViewer.java
rename to 
core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/StepsViewer.java
index 446946b93c..0618d21a10 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/internal/processing/image/IsolineViewer.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/internal/processing/isoline/StepsViewer.java
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-package org.apache.sis.internal.processing.image;
+package org.apache.sis.internal.processing.isoline;
 
 import java.awt.Shape;
 import java.awt.Color;
@@ -50,7 +50,7 @@ import static org.junit.Assert.*;
 /**
  * A viewer for showing isoline generation step-by-step.
  * For enabling the use of this class, temporarily remove {@code private} and 
{@code final} keywords in
- * {@link Isolines#LISTENER}, then uncomment the {@link 
#setListener(IsolineViewer)} constructor body.
+ * {@link Isolines#LISTENER}, then uncomment the {@link 
#setListener(StepsViewer)} constructor body.
  *
  * @author  Martin Desruisseaux (Geomatys)
  * @version 1.3
@@ -58,13 +58,13 @@ import static org.junit.Assert.*;
  * @module
  */
 @SuppressWarnings("serial")
-public final class IsolineViewer extends JComponent implements 
BiConsumer<String,Path2D>, ChangeListener, ActionListener {
+public final class StepsViewer extends JComponent implements 
BiConsumer<String,Path2D>, ChangeListener, ActionListener {
     /**
      * Sets the component to be notified after each row of isolines generated 
from the rendered image.
      * The body of this method is commented-out because {@link 
Isolines#LISTENER} is private and final.
      * The body should be uncommented only temporarily during debugging phases.
      */
-    private static void setListener(final IsolineViewer listener) {
+    private static void setListener(final StepsViewer listener) {
         // Isolines.LISTENER = listener;
     }
 
@@ -135,7 +135,7 @@ public final class IsolineViewer extends JComponent 
implements BiConsumer<String
      * @param  pane  the container where to add components.
      */
     @SuppressWarnings("ThisEscapedInObjectConstruction")
-    private IsolineViewer(final RenderedImage data, final Container pane) {
+    private StepsViewer(final RenderedImage data, final Container pane) {
         final double scaleX = (CANVAS_WIDTH  - 2*PADDING) / (double) 
data.getWidth();
         final double scaleY = (CANVAS_HEIGHT - 2*PADDING) / (double) 
data.getHeight();
         sourceToCanvas = new AffineTransform2D(
@@ -170,7 +170,7 @@ public final class IsolineViewer extends JComponent 
implements BiConsumer<String
         final JFrame frame = new JFrame("Step-by-step isoline viewer");
         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         frame.setLayout(new BorderLayout());
-        final IsolineViewer viewer = new IsolineViewer(data, 
frame.getContentPane());
+        final StepsViewer viewer = new StepsViewer(data, 
frame.getContentPane());
         final Isolines iso;
         try {
             setListener(viewer);
diff --git 
a/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
 
b/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
index db88eca51d..78e4a38b3e 100644
--- 
a/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
+++ 
b/core/sis-feature/src/test/java/org/apache/sis/test/suite/FeatureTestSuite.java
@@ -88,7 +88,7 @@ import org.junit.runners.Suite;
     org.apache.sis.internal.coverage.j2d.ScaledColorSpaceTest.class,
     org.apache.sis.internal.coverage.j2d.ColorizerTest.class,
     org.apache.sis.internal.coverage.j2d.SampleModelFactoryTest.class,
-    org.apache.sis.internal.processing.image.IsolinesTest.class,
+    org.apache.sis.internal.processing.isoline.IsolinesTest.class,
     org.apache.sis.image.DataTypeTest.class,
     org.apache.sis.image.PlanarImageTest.class,
     org.apache.sis.image.ComputedImageTest.class,

Reply via email to