You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sis.apache.org by de...@apache.org on 2019/10/24 12:08:27 UTC

[sis] 01/01: Merge branch 'geoapi-4.0' into geoapi-3.1

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

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

commit 1105c7453314b1171955eabd4704c45c5572e8c4
Merge: 20de767 25fbf74
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Thu Oct 24 14:08:15 2019 +0200

    Merge branch 'geoapi-4.0' into geoapi-3.1

 application/sis-console/src/main/artifact/bin/sis  |   5 +-
 .../java/org/apache/sis/coverage/Category.java     |   8 +-
 .../java/org/apache/sis/coverage/CategoryList.java |   8 +-
 .../coverage/IllegalSampleDimensionException.java  |  62 ++++
 .../org/apache/sis/coverage/SampleDimension.java   |   5 +-
 .../org/apache/sis/coverage/SampleRangeFormat.java | 146 +++++----
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   4 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/coverage/SampleRangeFormatTest.java | 137 +++++++++
 .../apache/sis/test/suite/FeatureTestSuite.java    |   3 +-
 .../sis/metadata/xml/SchemaComplianceTest.java     |  24 +-
 .../org/apache/sis/test/xml/PackageVerifier.java   |   8 +-
 .../referencing/provider/AbstractLambert.java      |  22 ++
 .../referencing/provider/AbstractMercator.java     |  22 ++
 .../provider/AbstractStereographic.java            |  22 ++
 .../referencing/provider/AlbersEqualArea.java      |  89 +++++-
 .../sis/internal/referencing/provider/ESRI.java    |  54 +++-
 .../referencing/provider/Equirectangular.java      |  64 ++++
 .../provider/FranceGeocentricInterpolation.java    |  10 +
 .../referencing/provider/GeocentricAffine.java     |  61 ++++
 .../GeocentricAffineBetweenGeographic.java         |  56 ++++
 .../referencing/provider/Geographic2Dto3D.java     |   6 +
 .../provider/GeographicAndVerticalOffsets.java     |   6 +
 .../referencing/provider/GeographicOffsets.java    |  18 ++
 .../provider/GeographicToGeocentric.java           |  12 +
 .../referencing/provider/LambertConformal1SP.java  |  37 +++
 .../referencing/provider/LambertConformal2SP.java  |  75 ++++-
 .../provider/LambertConformalMichigan.java         |  10 +
 .../referencing/provider/LambertConformalWest.java |  11 +
 .../provider/LambertCylindricalEqualArea.java      |  48 +++
 .../referencing/provider/MapProjection.java        | 120 +++++++-
 .../internal/referencing/provider/Mercator1SP.java |  37 +++
 .../internal/referencing/provider/Mercator2SP.java |  29 +-
 .../referencing/provider/MercatorSpherical.java    |   2 +-
 .../internal/referencing/provider/Mollweide.java   |  24 ++
 .../internal/referencing/provider/Molodensky.java  |  26 +-
 .../sis/internal/referencing/provider/NADCON.java  |  20 ++
 .../sis/internal/referencing/provider/NTv2.java    |  10 +
 .../referencing/provider/ObliqueMercator.java      |  93 +++++-
 .../provider/ObliqueMercatorCenter.java            |  20 ++
 .../referencing/provider/ObliqueStereographic.java |  33 +++
 .../referencing/provider/Orthographic.java         | 196 +++++++++++++
 .../referencing/provider/PolarStereographicA.java  |  37 +++
 .../referencing/provider/PolarStereographicB.java  |  43 ++-
 .../referencing/provider/PolarStereographicC.java  |  22 ++
 .../internal/referencing/provider/Polyconic.java   |  44 +++
 .../referencing/provider/RegionalMercator.java     |  37 +++
 .../referencing/provider/SatelliteTracking.java    |  60 ++++
 .../internal/referencing/provider/Sinusoidal.java  |  24 ++
 .../referencing/provider/TransverseMercator.java   |  37 ++-
 .../provider/ZonedTransverseMercator.java          |  21 ++
 .../java/org/apache/sis/referencing/Builder.java   |  48 ++-
 .../sis/referencing/operation/matrix/Matrix1.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix2.java  |  15 +-
 .../sis/referencing/operation/matrix/Matrix3.java  |  13 +-
 .../sis/referencing/operation/matrix/Matrix4.java  |  13 +-
 .../referencing/operation/matrix/package-info.java |   2 +-
 .../operation/projection/AlbersEqualArea.java      |   7 +-
 .../operation/projection/Initializer.java          |  16 +-
 .../referencing/operation/projection/Inverter.java | 105 +++++++
 .../projection/LambertConicConformal.java          |   7 +-
 .../referencing/operation/projection/Mercator.java |   6 +-
 .../operation/projection/Mollweide.java            |   8 +-
 .../operation/projection/ObliqueMercator.java      |   6 +-
 .../operation/projection/ObliqueStereographic.java |   7 +-
 .../operation/projection/Orthographic.java         | 261 +++++++++++++++++
 .../operation/projection/Sinusoidal.java           |   7 +-
 .../operation/projection/ZonedGridSystem.java      |   2 +-
 ...g.opengis.referencing.operation.OperationMethod |   1 +
 .../provider/ParameterNameTableGenerator.java      | 325 +++++++++++++++++++++
 .../referencing/provider/ProvidersTest.java        |   3 +-
 .../operation/projection/OrthographicTest.java     | 162 ++++++++++
 .../sis/test/suite/ReferencingTestSuite.java       |   1 +
 .../java/org/apache/sis/internal/jdk9/JDK9.java    |  19 +-
 .../org/apache/sis/internal/jdk9/package-info.java |   2 +-
 .../main/java/org/apache/sis/io/TableAppender.java |   6 +-
 .../java/org/apache/sis/util/logging/Logging.java  |  11 +-
 .../org/apache/sis/test/ProjectDirectories.java    | 164 +++++++++++
 .../test/java/org/apache/sis/test/TestCase.java    |   4 +
 .../org/apache/sis/test/TestConfiguration.java     |   9 +-
 .../test/java/org/apache/sis/test/TestSuite.java   |  35 +--
 .../java/org/apache/sis/test/package-info.java     |   2 +-
 ide-project/NetBeans/nbproject/project.properties  |   6 +-
 pom.xml                                            |   8 +-
 .../apache/sis/internal/earth/netcdf/GCOM_C.java   |   2 +-
 .../sis/internal/earth/netcdf/package-info.java    |   2 +-
 .../org/apache/sis/internal/netcdf/Convention.java |  38 ++-
 .../apache/sis/internal/netcdf/RasterResource.java |  69 +++--
 .../internal/shapefile/ShapefileDescriptor.java    |   6 +-
 .../apache/sis/storage/IllegalNameException.java   |   2 +-
 ...NameException.java => NoSuchDataException.java} |  44 +--
 .../apache/sis/storage/event/StoreListeners.java   |   4 +-
 92 files changed, 3128 insertions(+), 305 deletions(-)

diff --cc core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
index 9386a88,3c4df75..585c0f2
--- a/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/internal/referencing/provider/MapProjection.java
@@@ -36,6 -35,6 +35,7 @@@ import org.opengis.referencing.operatio
  import org.opengis.referencing.operation.MathTransform;
  import org.opengis.referencing.operation.MathTransformFactory;
  import org.opengis.referencing.operation.Projection;
++import org.opengis.referencing.ReferenceIdentifier;
  import org.apache.sis.internal.referencing.Resources;
  import org.apache.sis.internal.util.Constants;
  import org.apache.sis.measure.MeasurementRange;
@@@ -304,11 -388,15 +389,15 @@@ public abstract class MapProjection ext
              }
              builder.addName(alias);
          }
 -        for (Identifier id : template.getIdentifiers()) {
 +        for (ReferenceIdentifier id : template.getIdentifiers()) {
-             if (id.getAuthority() == toRename) {
-                 if (newCode == null) continue;
-                 id = newCode;
-                 newCode = null;
+             final Citation authority = id.getAuthority();
+             for (int i=0; i<toRename.length; i++) {
+                 if (authority == toRename[i]) {
+                     if (newCodes[i] == null) continue;
 -                    id = newCodes[i];
++                    id = (ReferenceIdentifier) newCodes[i];
+                     newCodes[i] = null;
+                     break;
+                 }
              }
              builder.addIdentifier(id);
          }
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
index a8617a1,aefc1d5..7648082
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/Builder.java
@@@ -273,7 -270,7 +273,7 @@@ public abstract class Builder<B extend
          if (object != null) {
              properties.putAll(IdentifiedObjects.getProperties(object));
              final GenericName[] valueAlias = (GenericName[]) properties.remove(IdentifiedObject.ALIAS_KEY);
-             final ReferenceIdentifier[] valueIds = (ReferenceIdentifier[])  properties.remove(IdentifiedObject.IDENTIFIERS_KEY);
 -            final Identifier[]  valueIds   = (Identifier[])  properties.remove(IdentifiedObject.IDENTIFIERS_KEY);
++            final ReferenceIdentifier[] valueIds = (ReferenceIdentifier[]) properties.remove(IdentifiedObject.IDENTIFIERS_KEY);
              if (valueAlias != null) aliases.addAll(Arrays.asList(valueAlias));
              if (valueIds != null) identifiers.addAll(Arrays.asList(valueIds));
          }
@@@ -708,17 -703,47 +708,47 @@@
       */
      public B addNamesAndIdentifiers(final IdentifiedObject object) {
          ensureNonNull("object", object);
 -        for (final Identifier id : object.getIdentifiers()) {
 +        for (final ReferenceIdentifier id : object.getIdentifiers()) {
-             if (!isDeprecated(id)) {
+             if (isValid(id)) {
                  addIdentifier(id);
              }
          }
 -        Identifier id = object.getName();
 +        ReferenceIdentifier id = object.getName();
-         if (!isDeprecated(id)) {
+         if (isValid(id)) {
              addName(id);
          }
          for (final GenericName alias : object.getAlias()) {
-             if (!isDeprecated(alias)) {
+             if (isValid(alias)) {
+                 addName(alias);
+             }
+         }
+         return self();
+     }
+ 
+     /**
+      * Adds the non-deprecated names and identifiers from the given object for the specified authority.
+      * This is a convenience method for reusing name and identifier already declared for another object.
+      *
+      * @param  authority  the authority for which to copy the name and identifier.
+      * @param  object     the object from which to copy the name and identifier.
+      * @return {@code this}, for method call chaining.
+      *
+      * @since 1.1
+      */
+     public B addNameAndIdentifier(final Citation authority, final IdentifiedObject object) {
+         ensureNonNull("authority", authority);
+         ensureNonNull("object", object);
 -        for (final Identifier id : object.getIdentifiers()) {
++        for (final ReferenceIdentifier id : object.getIdentifiers()) {
+             if (isValid(id) && authority.equals(id.getAuthority())) {
+                 addIdentifier(id);
+             }
+         }
 -        Identifier id = object.getName();
++        ReferenceIdentifier id = object.getName();
+         if (isValid(id) && authority.equals(id.getAuthority())) {
+             addName(id);
+         }
+         for (final GenericName alias : object.getAlias()) {
+             if (isValid(alias) && (alias instanceof Identifier) && authority.equals(((Identifier) alias).getAuthority())) {
                  addName(alias);
              }
          }