This is an automated email from the ASF dual-hosted git repository.

desruisseaux pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sis.git

commit 0e0cde0dc9ce114ee3b20d62681060a4a97fee7f
Merge: e339e19 db2fc14
Author: Martin Desruisseaux <martin.desruisse...@geomatys.com>
AuthorDate: Fri Feb 11 14:17:55 2022 +0100

    Merge branch 'geoapi-3.1'

 .../apache/sis/gui/coverage/CoverageCanvas.java    |   5 +-
 .../org/apache/sis/internal/gui/GUIUtilities.java  |   2 +-
 .../apache/sis/internal/gui/ImageConverter.java    |   5 +-
 .../java/org/apache/sis/coverage/CategoryList.java |  23 +-
 .../coverage/grid/FractionalGridCoordinates.java   |  18 +-
 .../apache/sis/coverage/grid/GridCoverage2D.java   |   9 +-
 .../apache/sis/coverage/grid/GridEvaluator.java    |  16 +-
 .../java/org/apache/sis/filter/PropertyValue.java  |  12 +-
 .../java/org/apache/sis/image/PixelIterator.java   |  54 +-
 .../java/org/apache/sis/image/PlanarImage.java     |  17 +-
 .../java/org/apache/sis/image/ResamplingGrid.java  |   5 -
 .../sis/internal/coverage/j2d/TilePlaceholder.java |  21 +-
 .../sis/coverage/grid/GridCoverage2DTest.java      |  28 +-
 .../sis/coverage/grid/GridDerivationTest.java      |  28 ++
 .../org/apache/sis/internal/metadata/Merger.java   |   5 +-
 .../sis/metadata/iso/citation/Citations.java       |  14 +-
 .../sis/metadata/iso/citation/package-info.java    |   2 +-
 .../apache/sis/metadata/sql/MetadataFallback.java  |   9 +-
 .../org/apache/sis/metadata/sql/Citations.sql      |   9 +-
 .../internal/map/coverage/RenderingWorkaround.java | 104 ++++
 .../apache/sis/internal/referencing/Formulas.java  |  48 +-
 .../referencing/j2d/AffineTransform2D.java         |   2 +-
 .../provider/ModifiedAzimuthalEquidistant.java     |  13 +-
 .../referencing/provider/NorthPoleRotation.java    | 160 ++++++
 .../referencing/provider/SouthPoleRotation.java    | 169 +++++++
 .../referencing/provider/package-info.java         |   2 +-
 .../java/org/apache/sis/parameter/Parameters.java  |   2 +-
 .../org/apache/sis/parameter/TensorValues.java     |   2 +-
 .../factory/ConcurrentAuthorityFactory.java        | 138 ++----
 .../factory/IdentifiedObjectFinder.java            | 106 ++--
 .../factory/MultiAuthoritiesFactory.java           |   8 +-
 .../operation/CoordinateOperationContext.java      |   4 +-
 .../operation/CoordinateOperationRegistry.java     | 106 +++-
 .../sis/referencing/operation/package-info.java    |   2 +-
 .../projection/LambertConicConformal.java          |   1 +
 .../projection/ModifiedAzimuthalEquidistant.java   |   2 +-
 .../operation/projection/NormalizedProjection.java |  57 +--
 .../operation/projection/ObliqueMercator.java      |   1 +
 .../operation/projection/ObliqueStereographic.java |   1 +
 .../operation/projection/PolarStereographic.java   |   1 +
 .../operation/projection/package-info.java         |   2 +-
 .../transform/AbstractLinearTransform.java         |   2 +-
 .../operation/transform/AbstractMathTransform.java |   8 +-
 .../transform/AbstractMathTransform2D.java         |  28 +-
 .../operation/transform/ConcatenatedTransform.java |  10 +-
 .../transform/ConcatenatedTransform2D.java         |   4 +-
 .../transform/ConcatenatedTransformDirect.java     |   4 +-
 .../transform/ConcatenatedTransformDirect2D.java   |   4 +-
 .../operation/transform/ConstantTransform1D.java   |   8 +-
 .../operation/transform/ContextualParameters.java  | 107 ++--
 .../transform/CoordinateSystemTransform.java       |   2 +-
 .../operation/transform/CopyTransform.java         |   4 +-
 .../operation/transform/DatumShiftTransform.java   |   2 +-
 .../transform/DefaultMathTransformFactory.java     |   2 +-
 .../transform/EllipsoidToCentricTransform.java     |  10 +-
 .../transform/ExponentialTransform1D.java          |   8 +-
 .../operation/transform/IdentityTransform.java     |  10 +-
 .../operation/transform/IdentityTransform1D.java   |   8 +-
 .../InterpolatedGeocentricTransform2D.java         |   4 +-
 .../InterpolatedMolodenskyTransform2D.java         |   4 +-
 .../operation/transform/InterpolatedTransform.java |   2 +-
 .../transform/InterpolatedTransform2D.java         |   4 +-
 .../operation/transform/LinearTransform1D.java     |  12 +-
 .../transform/LogarithmicTransform1D.java          |   8 +-
 .../operation/transform/MolodenskyFormula.java     |   2 +-
 .../operation/transform/MolodenskyTransform2D.java |   2 +-
 .../operation/transform/PassThroughTransform.java  |  10 +-
 .../operation/transform/PoleRotation.java          | 550 +++++++++++++++++++++
 .../operation/transform/PowerTransform1D.java      |   8 +-
 .../operation/transform/ProjectiveTransform.java   |  13 +-
 .../operation/transform/ScaleTransform.java        |   2 +-
 .../operation/transform/TranslationTransform.java  |   2 +-
 .../operation/transform/WraparoundTransform.java   |   4 +-
 .../operation/transform/package-info.java          |   2 +-
 ...g.opengis.referencing.operation.OperationMethod |   2 +
 .../referencing/provider/PoleRotationMock.java     |  60 ---
 .../referencing/provider/ProvidersTest.java        |   4 +-
 .../referencing/provider/SeismicBinGridMock.java   |   2 +-
 .../provider/TopocentricConversionMock.java        |   2 +-
 .../factory/ConcurrentAuthorityFactoryTest.java    |  17 +-
 .../referencing/factory/sql/EPSGFactoryTest.java   |   9 +-
 .../projection/MapProjectionTestCase.java          |   2 +-
 .../sis/referencing/operation/projection/NoOp.java |   3 +-
 .../projection/ProjectionResultComparator.java     |   4 +-
 .../operation/transform/MathTransformWrapper.java  |   8 +-
 .../operation/transform/PoleRotationTest.java      | 329 ++++++++++++
 .../sis/test/suite/ReferencingTestSuite.java       |   1 +
 ...g.opengis.referencing.operation.OperationMethod |   1 -
 .../apache/sis/internal/util/CollectionsExt.java   |   4 +-
 .../org/apache/sis/util/resources/Messages.java    |   5 +
 .../apache/sis/util/resources/Messages.properties  |   1 +
 .../sis/util/resources/Messages_fr.properties      |   1 +
 ide-project/NetBeans/nbproject/project.properties  |   2 +-
 pom.xml                                            |   4 +-
 .../org/apache/sis/internal/geotiff/Resources.java |   4 +-
 .../sis/internal/geotiff/Resources.properties      |   2 +-
 .../sis/internal/geotiff/Resources_fr.properties   |   2 +-
 .../sis/internal/storage/inflater/CCITTRLE.java    |   4 +-
 .../storage/inflater/CompressionChannel.java       |   2 +-
 .../storage/inflater/HorizontalPredictor.java      |   2 +-
 .../sis/internal/storage/inflater/Inflater.java    |   2 +-
 .../apache/sis/internal/storage/inflater/LZW.java  |  47 +-
 .../sis/internal/storage/inflater/PackBits.java    |   4 +-
 .../internal/storage/inflater/PixelChannel.java    |   2 +-
 .../storage/inflater/PredictorChannel.java         |   4 +-
 .../apache/sis/internal/storage/inflater/ZIP.java  |   6 +-
 .../org/apache/sis/storage/geotiff/CRSBuilder.java |  22 +-
 .../sis/storage/geotiff/ImageFileDirectory.java    | 139 +-----
 .../sis/storage/geotiff/ImageMetadataBuilder.java  | 234 +++++++++
 .../apache/sis/storage/geotiff/NativeMetadata.java |   2 +-
 .../apache/sis/storage/geotiff/XMLMetadata.java    |  44 +-
 .../sis/storage/geotiff/XMLMetadataTest.java       |   4 +-
 .../org/apache/sis/internal/netcdf/Linearizer.java |   2 +-
 .../sis/internal/storage/MetadataBuilder.java      |  49 +-
 .../sis/internal/storage/TiledGridCoverage.java    |   3 +
 .../internal/storage/MemoryGridResourceTest.java   |   8 +-
 116 files changed, 2397 insertions(+), 715 deletions(-)

diff --cc 
core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java
index e07d498,b8ddb4b..a5fe607
--- 
a/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java
+++ 
b/core/sis-feature/src/main/java/org/apache/sis/coverage/grid/GridEvaluator.java
@@@ -181,16 -181,18 +181,17 @@@ public class GridEvaluator implements G
          try {
              final FractionalGridCoordinates gc = toGridPosition(point);
              try {
-                 final GridExtent subExtent = gc.toExtent(gridGeometry.extent, 
size);
-                 return evaluate(coverage.render(subExtent), 0, 0);
+                 final GridExtent subExtent = gc.toExtent(gridGeometry.extent, 
size, nullIfOutside);
+                 if (subExtent != null) {
+                     return evaluate(coverage.render(subExtent), 0, 0);
+                 }
              } catch (ArithmeticException | IndexOutOfBoundsException | 
DisjointExtentException ex) {
-                 if (nullIfOutside) {
-                     return null;
+                 if (!nullIfOutside) {
+                     throw (PointOutsideCoverageException) new 
PointOutsideCoverageException(
 -                            gc.pointOutsideCoverage(gridGeometry.extent), 
point).initCause(ex);
++                            
gc.pointOutsideCoverage(gridGeometry.extent)).initCause(ex);
                  }
-                 throw (PointOutsideCoverageException) new 
PointOutsideCoverageException(
-                         
gc.pointOutsideCoverage(gridGeometry.extent)).initCause(ex);
              }
          } catch (PointOutsideCoverageException ex) {
 -            ex.setOffendingLocation(point);
              throw ex;
          } catch (RuntimeException | TransformException ex) {
              throw new CannotEvaluateException(ex.getMessage(), ex);
diff --cc 
core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
index 4a238a9,066e65a..7649a25
--- a/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/filter/PropertyValue.java
@@@ -225,14 -220,8 +225,8 @@@ split:  if (path != null) 
           * If no value is found for the given feature, then this method 
returns {@code null}.
           */
          @Override
 -        public Object apply(final Feature instance) {
 +        public Object apply(final AbstractFeature instance) {
-             if (instance != null) try {
-                 return instance.getPropertyValue(name);
-             } catch (IllegalArgumentException e) {
-                 warning(e, true);
-                 // Null will be returned below.
-             }
-             return null;
+             return (instance != null) ? instance.getValueOrFallback(name, 
null) : null;
          }
  
          /**
@@@ -292,14 -281,11 +286,14 @@@
           * If no value is found for the given feature, then this method 
returns {@code null}.
           */
          @Override
 -        public V apply(final Feature instance) {
 +        public V apply(final AbstractFeature instance) {
              if (instance != null) try {
-                 return 
ObjectConverters.convert(instance.getPropertyValue(name), type);
+                 return 
ObjectConverters.convert(instance.getValueOrFallback(name, null), type);
              } catch (UnconvertibleObjectException e) {
                  warning(e, false);
 +            } catch (IllegalArgumentException e) {
 +                warning(e, true);
 +                // Null will be returned below.
              }
              return null;
          }
@@@ -439,13 -425,11 +433,13 @@@
           * If no value is found for the given feature, then this method 
returns {@code null}.
           */
          @Override
 -        public V apply(final Feature instance) {
 +        public V apply(final AbstractFeature instance) {
              if (instance != null) try {
-                 return 
converter.apply(source.cast(instance.getPropertyValue(name)));
+                 return 
converter.apply(source.cast(instance.getValueOrFallback(name, null)));
              } catch (ClassCastException | UnconvertibleObjectException e) {
                  warning(e, false);
 +            } catch (IllegalArgumentException e) {
 +                warning(e, true);
              }
              return null;
          }
diff --cc core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
index a416caf,191b1f6..ff64fe7
--- a/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
+++ b/core/sis-feature/src/main/java/org/apache/sis/image/PixelIterator.java
@@@ -37,6 -37,8 +37,7 @@@ import java.awt.image.MultiPixelPackedS
  import java.awt.image.SinglePixelPackedSampleModel;
  import java.awt.image.RasterFormatException;
  import java.util.NoSuchElementException;
 -import org.opengis.coverage.grid.SequenceType;
+ import org.apache.sis.util.resources.Messages;
  import org.apache.sis.util.resources.Errors;
  import org.apache.sis.util.ArgumentChecks;
  import org.apache.sis.util.ArraysExt;

Reply via email to