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 5ee494c8e8 Remove last links to GeoAPI-pending `org.opengis.style` 
package. Add a `Style` interface as a placeholder for future style API (to be 
determined according the result of OGC/ISO works).
5ee494c8e8 is described below

commit 5ee494c8e84350014aa49be02f3cd98848a141eb
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Sat Jul 1 14:16:06 2023 +0200

    Remove last links to GeoAPI-pending `org.opengis.style` package.
    Add a `Style` interface as a placeholder for future style API
    (to be determined according the result of OGC/ISO works).
---
 .../org/apache/sis/internal/map/SEPortrayer.java   |  6 +-
 .../apache/sis/internal/map/SymbologyVisitor.java  |  7 +++
 .../java/org/apache/sis/portrayal/MapLayer.java    |  2 +-
 .../src/main/java/org/apache/sis/style/Style.java  | 29 ++++++++++
 .../java/org/apache/sis/style/package-info.java    | 41 +++++++++++++
 .../org/apache/sis/style/se1/AbstractStyle.java    |  7 +--
 .../apache/sis/style/se1/ContrastEnhancement.java  |  1 -
 .../org/apache/sis/style/se1/ContrastMethod.java   | 54 +++++++++++++++++
 .../org/apache/sis/style/se1/OverlapBehavior.java  | 52 +++++++++++++++++
 .../org/apache/sis/style/se1/RasterSymbolizer.java |  1 -
 .../org/apache/sis/style/se1/SemanticType.java     | 67 ++++++++++++++++++++++
 .../sis/style/se1/{Style.java => Symbology.java}   | 13 +++--
 .../org/apache/sis/style/se1/package-info.java     | 11 ++--
 .../apache/sis/internal/map/SEPortrayerTest.java   | 30 +++++-----
 .../sis/style/se1/ContrastEnhancementTest.java     |  3 -
 .../apache/sis/style/se1/FeatureTypeStyleTest.java |  3 -
 .../apache/sis/style/se1/RasterSymbolizerTest.java |  3 -
 .../se1/{StyleTest.java => SymbologyTest.java}     | 16 +++---
 18 files changed, 292 insertions(+), 54 deletions(-)

diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
index 5814406f92..d7af50d65c 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SEPortrayer.java
@@ -60,6 +60,8 @@ import org.apache.sis.util.ArgumentChecks;
 import org.apache.sis.style.se1.FeatureTypeStyle;
 import org.apache.sis.style.se1.Rule;
 import org.apache.sis.style.se1.Symbolizer;
+import org.apache.sis.style.se1.SemanticType;
+import org.apache.sis.style.se1.Symbology;
 
 // Branch-dependent imports
 import org.opengis.feature.AttributeType;
@@ -71,7 +73,6 @@ import org.opengis.feature.PropertyType;
 import org.opengis.filter.Filter;
 import org.opengis.filter.FilterFactory;
 import org.opengis.filter.Expression;
-import org.opengis.style.SemanticType;
 
 // Optional-dependencies (TODO: make library-independent)
 import org.locationtech.jts.geom.Geometry;
@@ -244,7 +245,8 @@ public final class SEPortrayer {
             return stream;
         }
         final double seScale = getSEScale(canvas, objToDisp);
-        for (FeatureTypeStyle fts : layer.getStyle().featureTypeStyles()) {
+        final Symbology style = (Symbology) layer.getStyle();     // TODO: we 
do not yet support other implementations.
+        for (FeatureTypeStyle fts : style.featureTypeStyles()) {
             final List<Rule<Feature>> rules = getValidRules(fts, seScale, 
type);
             if (rules.isEmpty()) continue;
 
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SymbologyVisitor.java
 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SymbologyVisitor.java
index 723526fc1b..a633f4332f 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SymbologyVisitor.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/internal/map/SymbologyVisitor.java
@@ -22,6 +22,7 @@ import org.opengis.filter.Expression;
 import org.opengis.filter.Literal;
 import org.opengis.filter.ValueReference;
 import org.apache.sis.style.se1.*;
+import org.apache.sis.style.Style;
 
 import static org.apache.sis.internal.util.CollectionsExt.nonNull;
 
@@ -43,6 +44,12 @@ public abstract class SymbologyVisitor {
     }
 
     protected void visit(final Style candidate) {
+        if (candidate instanceof Symbology) {
+            visit((Symbology) candidate);
+        }
+    }
+
+    protected void visit(final Symbology candidate) {
         if (candidate != null) {
             nonNull(candidate.featureTypeStyles()).forEach(this::visit);
         }
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayer.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayer.java
index 7c93058e94..c886c9a231 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayer.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/portrayal/MapLayer.java
@@ -24,7 +24,7 @@ import org.apache.sis.storage.DataStoreException;
 import org.apache.sis.storage.Query;
 import org.apache.sis.storage.Resource;
 import org.apache.sis.util.ArgumentChecks;
-import org.apache.sis.style.se1.Style;
+import org.apache.sis.style.Style;
 import org.opengis.coverage.Coverage;
 import org.opengis.feature.Feature;
 import org.opengis.geometry.Envelope;
diff --git a/core/sis-portrayal/src/main/java/org/apache/sis/style/Style.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/Style.java
new file mode 100644
index 0000000000..811741134a
--- /dev/null
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/style/Style.java
@@ -0,0 +1,29 @@
+/*
+ * 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.
+ */
+package org.apache.sis.style;
+
+
+/**
+ * Place-holder for future definition of a style API.
+ * See package description for more information.
+ *
+ * @author  Martin Desruisseaux (Geomatys)
+ * @version 1.5
+ * @since   1.5
+ */
+public interface Style {
+}
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/package-info.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/package-info.java
new file mode 100644
index 0000000000..ed8db5cafc
--- /dev/null
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/style/package-info.java
@@ -0,0 +1,41 @@
+/*
+ * 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.
+ */
+
+
+/**
+ * Symbology for styling map data independently of their source.
+ * This is a placeholder for future evolution.
+ * The following works in progress can be sources for the definition of a 
future style API:
+ *
+ * <ul>
+ *   <li>ISO 19117:2012 — Portrayal (under review as of June 2023)</li>
+ *   <li>OGC Styles and Symbology Encoding standard working group</li>
+ *   <li>OGC 3D Portrayal standard working group</li>
+ *   <li>OGC Portrayal discussion working group</li>
+ *   <li>OGC API — Styles standard working group</li>
+ * </ul>
+ *
+ * As of June 2023 we have not yet determined how to consolidate above works 
in a Java API.
+ * The {@link org.apache.sis.style.se1} package, which is derived from SE 1.1 
standard,
+ * is used an an interim API.
+ *
+ * @author  Johann Sorel (Geomatys)
+ * @author  Martin Desruisseaux (Geomatys)
+ * @version 1.5
+ * @since   1.5
+ */
+package org.apache.sis.style;
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/AbstractStyle.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/AbstractStyle.java
index 78fc11bda8..0bcc54eada 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/AbstractStyle.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/AbstractStyle.java
@@ -19,17 +19,16 @@ package org.apache.sis.style.se1;
 import java.util.Set;
 import java.util.List;
 import java.util.ArrayList;
+import java.util.EnumSet;
 import java.util.Optional;
 import jakarta.xml.bind.Unmarshaller;
 import jakarta.xml.bind.annotation.XmlType;
 import jakarta.xml.bind.annotation.XmlElement;
 import jakarta.xml.bind.annotation.XmlAttribute;
 import org.opengis.util.GenericName;
-import org.apache.sis.util.collection.CodeListSet;
 
 // Branch-dependent imports
 import org.opengis.filter.ResourceId;
-import org.opengis.style.SemanticType;
 
 
 /**
@@ -114,7 +113,7 @@ public abstract class AbstractStyle<R> extends 
StyleElement<R> {
      * @see #semanticTypeIdentifiers()
      */
 //  @XmlElement(name = "SemanticTypeIdentifier")
-    private CodeListSet<SemanticType> semanticTypeIdentifiers;
+    private EnumSet<SemanticType> semanticTypeIdentifiers;
 
     /**
      * List of rules.
@@ -156,7 +155,7 @@ public abstract class AbstractStyle<R> extends 
StyleElement<R> {
     public AbstractStyle(final StyleFactory<R> factory) {
         super(factory);
         version = VERSION;
-        semanticTypeIdentifiers = new CodeListSet<>(SemanticType.class);
+        semanticTypeIdentifiers = EnumSet.noneOf(SemanticType.class);
         rules = new ArrayList<>();
     }
 
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastEnhancement.java
 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastEnhancement.java
index 36c5f5d76e..2069d30b05 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastEnhancement.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastEnhancement.java
@@ -22,7 +22,6 @@ import jakarta.xml.bind.annotation.XmlRootElement;
 
 // Branch-dependent imports
 import org.opengis.filter.Expression;
-import org.opengis.style.ContrastMethod;
 
 
 /**
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastMethod.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastMethod.java
new file mode 100644
index 0000000000..56c625f748
--- /dev/null
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/ContrastMethod.java
@@ -0,0 +1,54 @@
+/*
+ * 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.
+ */
+package org.apache.sis.style.se1;
+
+
+/**
+ * Contrast enhancement for an image channel.
+ * In the case of a color image, the relative grayscale brightness of a pixel 
color is used.
+ *
+ * @author  Johann Sorel (Geomatys)
+ * @version 1.5
+ * @since   1.5
+ */
+public enum ContrastMethod {
+    /**
+     * Dimmest color is stretched to black and the brightest color is 
stretched to white.
+     * All colors in between are stretched out linearly.
+     */
+    NORMALIZE,
+
+    /**
+     * Contrast based on a histogram of how many colors are at each brightness 
level on input.
+     * The goal is to produce equal number of pixels in the image at each 
brightness level on output.
+     * This has the effect of revealing many subtle ground features.
+     */
+    HISTOGRAM,
+
+    /**
+     * Contrast based on a gamma value.
+     * A gamma value tells how much to brighten (value greater than 1)
+     * or dim (value less than 1) an image, with 1 meaning no change.
+     */
+    GAMMA,
+
+    /**
+     * No enhancement.
+     * This is the default value.
+     */
+    NONE;
+}
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/OverlapBehavior.java
 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/OverlapBehavior.java
new file mode 100644
index 0000000000..41c053d8d0
--- /dev/null
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/OverlapBehavior.java
@@ -0,0 +1,52 @@
+/*
+ * 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.
+ */
+package org.apache.sis.style.se1;
+
+
+/**
+ * Behavior when multiple raster images in a layer overlap each other.
+ * Overlaps happen for example with satellite-image scenes.
+ *
+ * @author  Johann Sorel (Geomatys)
+ * @version 1.5
+ * @since   1.5
+ */
+public enum OverlapBehavior {
+    /**
+     * Most recently captured scene on top.
+     */
+    LATEST_ON_TOP,
+
+    /**
+     * Less recently captures scene on top.
+     */
+    EARLIEST_ON_TOP,
+
+    /**
+     * Average multiple scenes together.
+     * This can produce blurry results if the source images
+     * are not perfectly aligned in their georeferencing.
+     */
+    AVERAGE,
+
+    /**
+     * Select an image (or piece thereof) randomly and place it on top.
+     * This can produce crisper results than {@link #AVERAGE} but is 
potentially
+     * more efficiently than {@link #LATEST_ON_TOP} or {@link 
#EARLIEST_ON_TOP}.
+     */
+    RANDOM
+}
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/RasterSymbolizer.java
 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/RasterSymbolizer.java
index e0c257370e..2cff799d4f 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/RasterSymbolizer.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/RasterSymbolizer.java
@@ -23,7 +23,6 @@ import jakarta.xml.bind.annotation.XmlRootElement;
 
 // Branch-dependent imports
 import org.opengis.filter.Expression;
-import org.opengis.style.OverlapBehavior;
 
 
 /**
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/SemanticType.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/SemanticType.java
new file mode 100644
index 0000000000..5a98cb7c77
--- /dev/null
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/SemanticType.java
@@ -0,0 +1,67 @@
+/*
+ * 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.
+ */
+package org.apache.sis.style.se1;
+
+
+/**
+ * Identifies the more general "type" of geometry that this style is meant to 
act upon.
+ * In the SE 1.1.0 specification, this is restricted to the following values:
+ *
+ * <ul>
+ *   <li>{@code generic:point}</li>
+ *   <li>{@code generic:line}</li>
+ *   <li>{@code generic:polygon}</li>
+ *   <li>{@code generic:text}</li>
+ *   <li>{@code generic:raster}</li>
+ *   <li>{@code generic:any}</li>
+ * </ul>
+ *
+ * @author  Johann Sorel (Geomatys)
+ * @version 1.5
+ * @since   1.5
+ */
+public enum SemanticType {
+    /**
+     * Semantic identifies a point geometry.
+     */
+    POINT,
+
+    /**
+     * Semantic identifies a line geometry.
+     */
+    LINE,
+
+    /**
+     * Semantic identifies a polygon geometry.
+     */
+    POLYGON,
+
+    /**
+     * Semantic identifies a text.
+     */
+    TEXT,
+
+    /**
+     * Semantic identifies a raster.
+     */
+    RASTER,
+
+    /**
+     * Semantic identifies any geometry.
+     */
+    ANY;
+}
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Style.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Symbology.java
similarity index 95%
rename from core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Style.java
rename to 
core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Symbology.java
index 47b97e063c..5fe570e9d6 100644
--- a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Style.java
+++ b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/Symbology.java
@@ -20,6 +20,7 @@ import java.util.List;
 import java.util.Arrays;
 import java.util.ArrayList;
 import java.util.Optional;
+import org.apache.sis.style.Style;
 
 
 /**
@@ -33,7 +34,7 @@ import java.util.Optional;
  * @version 1.5
  * @since   1.5
  */
-public class Style implements Cloneable {
+public class Symbology implements Style, Cloneable {
     /**
      * Name for this style, or {@code null} if none.
      *
@@ -76,7 +77,7 @@ public class Style implements Cloneable {
     /**
      * Creates an initially empty style.
      */
-    public Style() {
+    public Symbology() {
         fts = new ArrayList<>();
     }
 
@@ -86,7 +87,7 @@ public class Style implements Cloneable {
      *
      * @param  source  the object to copy.
      */
-    public Style(final Style source) {
+    public Symbology(final Symbology source) {
         name        = source.name;
         description = source.description;
         isDefault   = source.isDefault;
@@ -218,7 +219,7 @@ public class Style implements Cloneable {
             return true;
         }
         return (obj != null) && (obj.getClass() == getClass()) &&
-                Arrays.equals(properties(), ((Style) obj).properties());
+                Arrays.equals(properties(), ((Symbology) obj).properties());
     }
 
     /**
@@ -228,9 +229,9 @@ public class Style implements Cloneable {
      * @return deep clone of all style elements.
      */
     @Override
-    public Style clone() {
+    public Symbology clone() {
         try {
-            final var clone = (Style) super.clone();
+            final var clone = (Symbology) super.clone();
             clone.selfClone();
             return clone;
         } catch (CloneNotSupportedException e) {
diff --git 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/package-info.java 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/package-info.java
index fb73dd6b9a..2f6d89729f 100644
--- 
a/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/package-info.java
+++ 
b/core/sis-portrayal/src/main/java/org/apache/sis/style/se1/package-info.java
@@ -27,13 +27,10 @@
  * Those classes include different kinds of {@link 
org.apache.sis.style.se1.Symbolizer}.
  *
  * <h2>Future evolution</h2>
- * This package defines an XML encoding.
- * It is not an abstract model for sophisticated styling.
- * Apache SIS temporarily uses the classes of the XML encoding as a style API,
- * but a future version may replace this API by a more abstract one.
- * A good candidate may be <cite>ISO 19117:2012 — Portrayal</cite>.
- * As of 2023, various OGC working groups are also working on new style APIs.
- * The final form of such API has not yet been settled down.
+ * This package defines an XML encoding. It is not an abstract model for 
sophisticated styling.
+ * More generic styling API may be provided in a future Apache SIS version in 
the {@link org.apache.sis.style} package.
+ * That future API may be derived from <cite>ISO 19117:2012 — Portrayal</cite> 
and/or from the outcome of OGC standard
+ * working groups which are currently (as of June 2023) working on new style 
API.
  *
  * <h2>Synchronization</h2>
  * Unless otherwise specified in the Javadoc, classes in this package are not 
thread-safe.
diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
index 5198a054f3..c7d3d091d6 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/internal/map/SEPortrayerTest.java
@@ -39,7 +39,7 @@ import org.apache.sis.geometry.GeneralEnvelope;
 import org.apache.sis.internal.feature.AttributeConvention;
 import org.apache.sis.internal.storage.MemoryFeatureSet;
 import org.apache.sis.style.se1.FeatureTypeStyle;
-import org.apache.sis.style.se1.Style;
+import org.apache.sis.style.se1.Symbology;
 import org.apache.sis.storage.FeatureQuery;
 import org.apache.sis.portrayal.MapItem;
 import org.apache.sis.portrayal.MapLayer;
@@ -56,6 +56,7 @@ import org.apache.sis.style.se1.StyleFactory;
 import org.apache.sis.test.TestCase;
 import org.apache.sis.util.iso.Names;
 import org.apache.sis.style.se1.Symbolizer;
+import org.apache.sis.style.se1.SemanticType;
 import org.locationtech.jts.geom.CoordinateXY;
 import org.locationtech.jts.geom.GeometryFactory;
 import org.locationtech.jts.geom.Point;
@@ -69,7 +70,6 @@ import org.opengis.filter.Expression;
 import org.opengis.filter.Filter;
 import org.opengis.filter.FilterFactory;
 import org.opengis.filter.MatchAction;
-import org.opengis.style.SemanticType;
 
 import org.junit.Test;
 
@@ -197,7 +197,7 @@ public class SEPortrayerTest extends TestCase {
      */
     @Test
     public void testSanity() {
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         final var rule = factory.createRule();
         final var symbolizer = factory.createLineSymbolizer();
@@ -234,7 +234,7 @@ public class SEPortrayerTest extends TestCase {
         env.setRange(0, 9, 11);
         env.setRange(1, 19, 21);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         final var rule = factory.createRule();
         final var symbolizer = factory.createLineSymbolizer();
@@ -263,7 +263,7 @@ public class SEPortrayerTest extends TestCase {
      */
     @Test
     public void testUserQuery() {
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         final var rule = factory.createRule();
         final var symbolizer = factory.createLineSymbolizer();
@@ -301,7 +301,7 @@ public class SEPortrayerTest extends TestCase {
      */
     @Test
     public void testFeatureTypeStyleTypeNames() {
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         fts.setFeatureTypeName(Names.createLocalName(null, null, "boat"));
         final var rule = factory.createRule();
@@ -332,7 +332,7 @@ public class SEPortrayerTest extends TestCase {
      */
     @Test
     public void testFeatureTypeStyleSemanticType() {
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         fts.semanticTypeIdentifiers().add(SemanticType.POINT);
         final var rule = factory.createRule();
@@ -366,7 +366,7 @@ public class SEPortrayerTest extends TestCase {
     public void testRuleFilter() {
         final Filter<Feature> filter = filterFactory.resourceId("2");
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         final var rule = factory.createRule();
         rule.setFilter(filter);
@@ -414,7 +414,7 @@ public class SEPortrayerTest extends TestCase {
         ruleMatch.setMinScaleDenominator(3e8);
         ruleMatch.setMaxScaleDenominator(4e8);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(ruleAbove);
@@ -452,7 +452,7 @@ public class SEPortrayerTest extends TestCase {
                 filterFactory.literal("White Shark"),
                 true, MatchAction.ANY);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         final var rule = factory.createRule();
         rule.setFilter(filter);
@@ -496,7 +496,7 @@ public class SEPortrayerTest extends TestCase {
         ruleOther.setElseFilter(true);
         ruleOther.symbolizers().add(symbolizerElse);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(ruleBase);
@@ -532,7 +532,7 @@ public class SEPortrayerTest extends TestCase {
         final var ruleBase = factory.createRule();
         ruleBase.symbolizers().add(symbolizerBase);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(ruleBase);
@@ -588,7 +588,7 @@ public class SEPortrayerTest extends TestCase {
         rule.symbolizers().add(symbolizer);
         rule.setFilter(filter);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(rule);
@@ -655,7 +655,7 @@ public class SEPortrayerTest extends TestCase {
         rule.symbolizers().add(symbolizer);
         rule.setFilter(filter);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(rule);
@@ -696,7 +696,7 @@ public class SEPortrayerTest extends TestCase {
         final var rule = factory.createRule();
         rule.symbolizers().add(symbolizer);
 
-        final Style style = new Style();
+        final Symbology style = new Symbology();
         final FeatureTypeStyle fts = new FeatureTypeStyle();
         style.featureTypeStyles().add(fts);
         fts.rules().add(rule);
diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/ContrastEnhancementTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/ContrastEnhancementTest.java
index 86ac956a29..41cb432557 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/ContrastEnhancementTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/ContrastEnhancementTest.java
@@ -19,9 +19,6 @@ package org.apache.sis.style.se1;
 import org.junit.Test;
 import static org.junit.Assert.*;
 
-// Branch-dependent imports
-import org.opengis.style.ContrastMethod;
-
 
 /**
  * Tests for {@link ContrastEnhancement}.
diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/FeatureTypeStyleTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/FeatureTypeStyleTest.java
index cff66ade8e..495e2721a0 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/FeatureTypeStyleTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/FeatureTypeStyleTest.java
@@ -22,9 +22,6 @@ import org.apache.sis.util.iso.Names;
 import org.junit.Test;
 import static org.junit.Assert.*;
 
-// Branch-dependent imports
-import org.opengis.style.SemanticType;
-
 
 /**
  * Tests for {@link FeatureTypeStyle}.
diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/RasterSymbolizerTest.java
 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/RasterSymbolizerTest.java
index 6be7723072..86aeb088de 100644
--- 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/RasterSymbolizerTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/RasterSymbolizerTest.java
@@ -19,9 +19,6 @@ package org.apache.sis.style.se1;
 import org.junit.Test;
 import static org.junit.Assert.*;
 
-// Branch-dependent imports
-import org.opengis.style.OverlapBehavior;
-
 
 /**
  * Tests for {@link RasterSymbolizer}.
diff --git 
a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/StyleTest.java 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/SymbologyTest.java
similarity index 89%
rename from 
core/sis-portrayal/src/test/java/org/apache/sis/style/se1/StyleTest.java
rename to 
core/sis-portrayal/src/test/java/org/apache/sis/style/se1/SymbologyTest.java
index 7273586f27..6b81c369e3 100644
--- a/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/StyleTest.java
+++ 
b/core/sis-portrayal/src/test/java/org/apache/sis/style/se1/SymbologyTest.java
@@ -21,17 +21,17 @@ import static org.junit.Assert.*;
 
 
 /**
- * Tests for {@link Style}.
+ * Tests for {@link Symbology}.
  *
  * @author  Johann Sorel (Geomatys)
  * @version 1.5
  * @since   1.5
  */
-public final class StyleTest extends StyleTestCase {
+public final class SymbologyTest extends StyleTestCase {
     /**
      * Creates a new test case.
      */
-    public StyleTest() {
+    public SymbologyTest() {
     }
 
     /**
@@ -39,7 +39,7 @@ public final class StyleTest extends StyleTestCase {
      */
     @Test
     public void testFeatureTypeStyles() {
-        Style cdt = new Style();
+        Symbology cdt = new Symbology();
 
         // Check defaults
         assertTrue(cdt.featureTypeStyles().isEmpty());
@@ -54,7 +54,7 @@ public final class StyleTest extends StyleTestCase {
      */
     @Test
     public void testIsDefault() {
-        Style cdt = new Style();
+        Symbology cdt = new Symbology();
 
         // Check defaults
         assertFalse(cdt.isDefault());
@@ -69,7 +69,7 @@ public final class StyleTest extends StyleTestCase {
      */
     @Test
     public void testDefaultSpecification() {
-        Style cdt = new Style();
+        Symbology cdt = new Symbology();
 
         // Check defaults
         assertEmpty(cdt.getDefaultSpecification());
@@ -85,7 +85,7 @@ public final class StyleTest extends StyleTestCase {
      */
     @Test
     public void testName() {
-        Style cdt = new Style();
+        Symbology cdt = new Symbology();
 
         // Check defaults
         assertEmpty(cdt.getName());
@@ -101,7 +101,7 @@ public final class StyleTest extends StyleTestCase {
      */
     @Test
     public void testDescription() {
-        Style cdt = new Style();
+        Symbology cdt = new Symbology();
 
         // Check defaults
         assertEmpty(cdt.getDescription());

Reply via email to