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 2023/01/02 13:21:09 UTC

[sis] 01/01: Merge branch 'geoapi-4.0' into geoapi-3.1 Mostly use of Math.fma(…) and resolution of some compiler warnings.

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 c7d4b3ede731f8467ff2c08d2f26cee36982c27f
Merge: 1cb46836e6 a2eed4d0f8
Author: Martin Desruisseaux <ma...@geomatys.com>
AuthorDate: Mon Jan 2 14:20:05 2023 +0100

    Merge branch 'geoapi-4.0' into geoapi-3.1
    Mostly use of Math.fma(…) and resolution of some compiler warnings.

 .../java/org/apache/sis/console/CommandRunner.java |   2 +-
 .../org/apache/sis/gui/coverage/GridTileCache.java |   2 +-
 .../org/apache/sis/gui/dataset/ResourceEvent.java  |   3 +
 .../java/org/apache/sis/coverage/Category.java     |   2 +
 .../org/apache/sis/coverage/RegionOfInterest.java  |   6 +-
 .../org/apache/sis/coverage/SampleDimension.java   |   2 +
 .../org/apache/sis/coverage/SampleRangeFormat.java |   2 +-
 .../main/java/org/apache/sis/coverage/ToNaN.java   |   2 +-
 .../org/apache/sis/coverage/grid/GridGeometry.java |   5 +-
 .../java/org/apache/sis/coverage/package-info.java |   2 +-
 .../apache/sis/feature/AbstractAssociation.java    |   1 +
 .../org/apache/sis/feature/AbstractAttribute.java  |   1 +
 .../org/apache/sis/feature/AbstractFeature.java    |   3 +-
 .../apache/sis/feature/AbstractIdentifiedType.java |   4 +
 .../org/apache/sis/feature/AssociationView.java    |   1 +
 .../java/org/apache/sis/feature/AttributeView.java |   2 +-
 .../apache/sis/feature/DefaultAssociationRole.java |  14 +-
 .../apache/sis/feature/DefaultAttributeType.java   |   1 +
 .../org/apache/sis/feature/DefaultFeatureType.java |   5 +
 .../java/org/apache/sis/feature/DenseFeature.java  |   2 +
 .../org/apache/sis/feature/EnvelopeOperation.java  |   4 +
 .../java/org/apache/sis/feature/FeatureFormat.java |   5 +-
 .../sis/feature/FeatureOperationException.java     |   1 +
 .../sis/feature/InvalidFeatureException.java       |   1 +
 .../java/org/apache/sis/feature/LinkOperation.java |   1 +
 .../org/apache/sis/feature/NamedFeatureType.java   |   2 +
 .../java/org/apache/sis/feature/PropertyView.java  |   2 +-
 .../apache/sis/feature/SingletonAssociation.java   |   1 +
 .../org/apache/sis/feature/SingletonAttribute.java |   1 +
 .../java/org/apache/sis/feature/SparseFeature.java |   1 +
 .../apache/sis/feature/StringJoinOperation.java    |   4 +
 .../apache/sis/feature/builder/TypeBuilder.java    |   1 -
 .../java/org/apache/sis/filter/BinaryFunction.java |   4 +-
 .../apache/sis/filter/BinaryGeometryFilter.java    |   5 +-
 .../org/apache/sis/filter/ComparisonFilter.java    |   1 -
 .../org/apache/sis/filter/ConvertFunction.java     |   2 +-
 .../org/apache/sis/filter/DefaultSortProperty.java |   2 +-
 .../java/org/apache/sis/filter/DistanceFilter.java |   2 +-
 .../java/org/apache/sis/filter/LeafExpression.java |   2 +-
 .../java/org/apache/sis/filter/LikeFilter.java     |   2 +-
 .../java/org/apache/sis/filter/LogicalFilter.java  |   4 +-
 .../java/org/apache/sis/filter/PropertyValue.java  |   3 +-
 .../java/org/apache/sis/filter/UnaryFunction.java  |   2 +-
 .../org/apache/sis/index/tree/NodeIterator.java    |   1 +
 .../java/org/apache/sis/index/tree/PointTree.java  |  15 +-
 .../org/apache/sis/index/tree/PointTreeNode.java   |  15 +-
 .../org/apache/sis/index/tree/QuadTreeNode.java    |   7 +-
 .../org/apache/sis/internal/feature/Resources.java |   1 -
 .../internal/feature/SpatialOperationContext.java  |   8 +-
 .../sis/internal/feature/j2d/ShapeWrapper.java     |   1 +
 .../feature/jts/PackedCoordinateSequence.java      |   5 +
 .../sis/internal/filter/GeometryConverter.java     |   2 +-
 .../sis/internal/filter/SortByComparator.java      |   1 +
 .../internal/filter/sqlmm/FunctionWithSRID.java    |   1 +
 .../internal/filter/sqlmm/GeometryConstructor.java |   1 +
 .../sis/internal/filter/sqlmm/OneGeometry.java     |   3 +-
 .../apache/sis/internal/filter/sqlmm/ST_Point.java |   1 +
 .../sis/internal/filter/sqlmm/ST_Transform.java    |   1 +
 .../sis/internal/filter/sqlmm/TwoGeometries.java   |   2 +
 .../sis/internal/processing/isoline/Fragments.java |   2 +-
 .../sis/internal/jaxb/IdentifierMapAdapter.java    |   2 +-
 .../sis/internal/jaxb/NonMarshalledAuthority.java  |   1 -
 .../sis/internal/jaxb/SpecializedIdentifier.java   |   2 +-
 .../sis/internal/jaxb/lan/LocaleAndCharset.java    |   4 +-
 .../apache/sis/internal/metadata/Resources.java    |   1 -
 .../sis/internal/simple/SimpleAttributeType.java   |   1 +
 .../internal/simple/SimpleIdentifiedObject.java    |   1 +
 .../sis/internal/simple/SimpleIdentifier.java      |   1 +
 .../org/apache/sis/metadata/MetadataFormat.java    |   2 +-
 .../org/apache/sis/metadata/MetadataStandard.java  |   2 +-
 .../org/apache/sis/metadata/iso/ISOMetadata.java   |   2 +-
 .../apache/sis/metadata/sql/MetadataWriter.java    |   6 +-
 .../org/apache/sis/util/iso/DefaultRecord.java     |   2 +-
 .../org/apache/sis/util/iso/DefaultRecordType.java |   2 +-
 .../org/apache/sis/util/iso/DefaultTypeName.java   |   2 +-
 .../org/apache/sis/util/iso/RecordDefinition.java  |   2 +-
 .../main/java/org/apache/sis/util/iso/Types.java   |   1 +
 .../main/java/org/apache/sis/xml/NilReason.java    |   3 +-
 .../src/main/java/org/apache/sis/xml/XLink.java    |   1 +
 .../sis/metadata/iso/extent/ExtentsTest.java       |   1 -
 .../apache/sis/test/xml/DocumentComparator.java    |   6 +-
 .../org/apache/sis/geometry/AbstractEnvelope.java  |  12 +-
 .../org/apache/sis/geometry/ArrayEnvelope.java     |   1 +
 .../org/apache/sis/geometry/CoordinateFormat.java  |   8 +-
 .../org/apache/sis/geometry/DirectPosition1D.java  |   1 +
 .../org/apache/sis/geometry/DirectPosition2D.java  |   1 +
 .../java/org/apache/sis/geometry/Envelope2D.java   |   1 +
 .../java/org/apache/sis/geometry/Envelopes.java    |   3 -
 .../apache/sis/geometry/GeneralDirectPosition.java |   1 +
 .../org/apache/sis/geometry/GeneralEnvelope.java   |   5 +-
 .../java/org/apache/sis/geometry/Shapes2D.java     |   1 -
 .../internal/referencing/EPSGParameterDomain.java  |   1 +
 .../apache/sis/internal/referencing/Formulas.java  |  10 +-
 .../apache/sis/internal/referencing/RTreeNode.java |   1 +
 .../referencing/j2d/AffineTransform2D.java         |   2 +-
 .../referencing/j2d/IntervalRectangle.java         |   8 +-
 .../referencing/j2d/ParameterizedAffine.java       |   3 +-
 .../sis/internal/referencing/j2d/package-info.java |   2 +-
 .../sis/internal/referencing/package-info.java     |   2 +-
 .../referencing/provider/DatumShiftGridFile.java   |   3 +
 .../referencing/provider/DatumShiftGridGroup.java  |   5 +-
 .../provider/FranceGeocentricInterpolation.java    |   5 +-
 .../referencing/provider/GeocentricAffine.java     |   1 -
 .../provider/MolodenskyInterpolation.java          |   3 +
 .../sis/internal/referencing/provider/NADCON.java  |   5 +-
 .../sis/internal/referencing/provider/NTv2.java    |   3 +-
 .../referencing/provider/package-info.java         |   2 +-
 .../main/java/org/apache/sis/io/wkt/Formatter.java |   1 -
 .../apache/sis/io/wkt/GeodeticObjectParser.java    |   1 -
 .../java/org/apache/sis/io/wkt/StoredTree.java     |   1 +
 .../main/java/org/apache/sis/io/wkt/WKTFormat.java |   5 +-
 .../main/java/org/apache/sis/io/wkt/Warnings.java  |  25 +--
 .../java/org/apache/sis/io/wkt/package-info.java   |   2 +-
 .../parameter/DefaultParameterDescriptorGroup.java |   3 +-
 .../sis/parameter/DefaultParameterValue.java       |   4 +-
 .../apache/sis/parameter/FilteredParameters.java   |   3 +-
 .../sis/parameter/MapProjectionParameters.java     |   3 +
 .../org/apache/sis/parameter/ParameterFormat.java  |   6 +-
 .../apache/sis/parameter/ParameterValueList.java   |   4 +-
 .../java/org/apache/sis/parameter/Parameters.java  |   3 +-
 .../org/apache/sis/parameter/TensorParameters.java |   2 +-
 .../org/apache/sis/parameter/TensorValues.java     |   2 +-
 .../sis/parameter/UninitializedParameter.java      |   2 +-
 .../parameter/UnmodifiableParameterValueGroup.java |   4 +-
 .../sis/referencing/AbstractIdentifiedObject.java  |   8 +-
 .../sis/referencing/AbstractReferenceSystem.java   |   4 +-
 .../sis/referencing/ImmutableIdentifier.java       |   4 +-
 .../org/apache/sis/referencing/Properties.java     |   1 +
 .../apache/sis/referencing/crs/AbstractCRS.java    |   2 +-
 .../sis/referencing/crs/AbstractDerivedCRS.java    |   2 +-
 .../sis/referencing/crs/DefaultCompoundCRS.java    |   1 +
 .../sis/referencing/crs/DefaultEngineeringCRS.java |   2 +-
 .../sis/referencing/crs/DefaultGeodeticCRS.java    |   1 +
 .../sis/referencing/crs/DefaultImageCRS.java       |   1 +
 .../sis/referencing/crs/DefaultParametricCRS.java  |   1 +
 .../sis/referencing/crs/DefaultTemporalCRS.java    |   1 +
 .../sis/referencing/crs/DefaultVerticalCRS.java    |   1 +
 .../org/apache/sis/referencing/cs/AbstractCS.java  |   2 +-
 .../sis/referencing/cs/DefaultCompoundCS.java      |   5 +-
 .../cs/DefaultCoordinateSystemAxis.java            |   1 +
 .../sis/referencing/datum/AbstractDatum.java       |   3 +
 .../sis/referencing/datum/BursaWolfParameters.java |   2 +
 .../sis/referencing/datum/DatumShiftGrid.java      |   3 +
 .../sis/referencing/datum/DefaultEllipsoid.java    |   1 +
 .../referencing/datum/DefaultGeodeticDatum.java    |   2 +
 .../referencing/datum/DefaultPrimeMeridian.java    |   1 +
 .../org/apache/sis/referencing/datum/Sphere.java   |   3 -
 .../factory/ConcurrentAuthorityFactory.java        |   1 -
 .../factory/UnavailableFactoryException.java       |   4 +-
 .../sis/referencing/factory/package-info.java      |   2 +-
 .../referencing/factory/sql/EPSGDataAccess.java    |   1 -
 .../operation/AbstractCoordinateOperation.java     |  14 +-
 .../operation/AbstractSingleOperation.java         |   4 +-
 .../operation/CoordinateOperationContext.java      |   2 +-
 .../operation/CoordinateOperationFinder.java       |  24 +--
 .../operation/DefaultConcatenatedOperation.java    |   2 +-
 .../sis/referencing/operation/DefaultFormula.java  |   4 +-
 .../operation/DefaultOperationMethod.java          |   4 +-
 .../operation/DefaultPassThroughOperation.java     |   2 +-
 .../operation/InverseOperationMethod.java          |   2 +-
 .../operation/builder/LinearTransformBuilder.java  |   1 -
 .../builder/LocalizationGridException.java         |   1 +
 .../operation/builder/ResidualGrid.java            |   1 +
 .../operation/matrix/GeneralMatrix.java            |  67 +++++--
 .../sis/referencing/operation/matrix/Matrices.java |  55 +++---
 .../referencing/operation/matrix/MatrixSIS.java    |  10 +-
 .../operation/matrix/UnmodifiableMatrix.java       |   1 +
 .../referencing/operation/matrix/package-info.java |   2 +-
 .../sis/referencing/operation/package-info.java    |   2 +-
 .../operation/projection/AuthalicConversion.java   |  18 +-
 .../operation/projection/ConformalProjection.java  |  27 +--
 .../referencing/operation/projection/Inverter.java |   2 +-
 .../projection/LambertAzimuthalEqualArea.java      |  12 +-
 .../referencing/operation/projection/Mercator.java |   6 -
 .../operation/projection/MeridianArcBased.java     |  58 ++++--
 .../operation/projection/NormalizedProjection.java |   2 +-
 .../operation/projection/ZonedGridSystem.java      |   3 +
 .../operation/projection/package-info.java         |   2 +-
 .../transform/AbstractLinearTransform.java         |  14 +-
 .../operation/transform/ConcatenatedTransform.java |   3 +
 .../operation/transform/ConstantTransform1D.java   |  13 +-
 .../operation/transform/ContextualParameters.java  |  18 +-
 .../operation/transform/DatumShiftTransform.java   |   2 +
 .../transform/DefaultMathTransformFactory.java     |   3 +-
 .../transform/EllipsoidToCentricTransform.java     |   1 +
 .../transform/ExponentialTransform1D.java          |   1 +
 .../operation/transform/IdentityTransform1D.java   |   4 +-
 .../transform/InterpolatedGeocentricTransform.java |   1 +
 .../transform/InterpolatedMolodenskyTransform.java |   4 +
 .../InterpolatedMolodenskyTransform2D.java         |   3 +
 .../operation/transform/LinearInterpolator1D.java  |  11 +-
 .../operation/transform/LinearTransform1D.java     | 200 ++++++++++++++++-----
 .../transform/LogarithmicTransform1D.java          |   1 +
 .../operation/transform/MathTransforms.java        |   8 +-
 .../operation/transform/PassThroughTransform.java  |   1 +
 .../operation/transform/PoleRotation.java          |   1 +
 .../operation/transform/ProjectiveTransform.java   |  27 ++-
 .../transform/SpecializableTransform.java          |   5 +
 .../operation/transform/TransferFunction.java      |   1 +
 .../operation/transform/TransformAdapter2D.java    |   1 +
 .../sis/referencing/factory/TestFactorySource.java |   1 -
 .../factory/sql/epsg/DataScriptFormatter.java      |   1 -
 .../operation/CoordinateOperationFinderTest.java   |   4 +-
 .../operation/matrix/GeneralMatrixTest.java        |   5 +-
 .../referencing/operation/matrix/MatricesTest.java |  19 +-
 .../operation/matrix/MatrixTestCase.java           |  31 ++--
 .../operation/projection/SinusoidalTest.java       |   2 +-
 .../operation/transform/SinusoidalShiftGrid.java   |   2 +-
 .../sis/internal/converter/ArrayConverter.java     |   1 +
 .../internal/converter/CharSequenceConverter.java  |   1 +
 .../sis/internal/converter/FallbackConverter.java  |   2 +
 .../sis/internal/converter/IdentityConverter.java  |   8 +-
 .../sis/internal/converter/StringConverter.java    |  22 +--
 .../sis/internal/converter/package-info.java       |   2 +-
 .../sis/internal/util/AutoMessageFormat.java       |   2 +-
 .../apache/sis/internal/util/CheckedHashSet.java   |   1 +
 .../org/apache/sis/internal/util/DoubleDouble.java |  70 ++------
 .../sis/internal/util/SimpleCharacterIterator.java |  10 +-
 .../sis/internal/util/UnmodifiableArrayList.java   |   1 +
 .../main/java/org/apache/sis/math/ArrayVector.java |  23 ++-
 .../org/apache/sis/math/ConcatenatedVector.java    |   1 +
 .../org/apache/sis/math/LinearlyDerivedVector.java |   1 +
 .../java/org/apache/sis/math/MathFunctions.java    |  37 ++--
 .../java/org/apache/sis/math/RepeatedVector.java   |   1 +
 .../main/java/org/apache/sis/math/Statistics.java  |   1 +
 .../java/org/apache/sis/math/package-info.java     |   2 +-
 .../org/apache/sis/measure/AbstractConverter.java  |   2 +-
 .../apache/sis/measure/ConcatenatedConverter.java  |   2 +
 .../org/apache/sis/measure/ConventionalUnit.java   |   2 +-
 .../java/org/apache/sis/measure/DerivedScalar.java |   4 +-
 .../sis/measure/FormattedCharacterIterator.java    |  23 +--
 .../org/apache/sis/measure/LinearConverter.java    |  36 ++--
 .../org/apache/sis/measure/MeasurementRange.java   |   1 +
 .../main/java/org/apache/sis/measure/Range.java    |   1 +
 .../main/java/org/apache/sis/measure/Scalar.java   |   2 +-
 .../apache/sis/measure/SexagesimalConverter.java   |   2 +-
 .../java/org/apache/sis/measure/UnitDimension.java |   2 +-
 .../java/org/apache/sis/measure/UnitFormat.java    |   5 +-
 .../main/java/org/apache/sis/measure/Units.java    |   1 +
 .../src/main/java/org/apache/sis/setup/About.java  |   2 +-
 .../sis/util/collection/DefaultTreeTable.java      |   5 +-
 .../org/apache/sis/util/collection/DerivedMap.java |   6 +-
 .../org/apache/sis/util/collection/DerivedSet.java |   2 +-
 .../sis/util/collection/FrequencySortedSet.java    |   3 +-
 .../org/apache/sis/util/collection/RangeSet.java   |   1 +
 .../apache/sis/util/collection/TreeNodeList.java   |   2 +
 .../sis/util/collection/TreeTableFormat.java       |  14 +-
 .../resources/ResourceInternationalString.java     |   1 +
 .../apache/sis/internal/util/DoubleDoubleTest.java |   8 +-
 .../measure/FormattedCharacterIteratorTest.java    |   2 +-
 .../apache/sis/measure/LinearConverterTest.java    |   1 -
 ide-project/NetBeans/nbproject/cfg_hints.xml       |  52 ++++++
 .../sis/internal/profile/fra/Constraints.java      |   1 +
 .../internal/profile/fra/DataIdentification.java   |   1 +
 .../profile/fra/DirectReferenceSystem.java         |   2 +-
 .../profile/fra/IndirectReferenceSystem.java       |   2 +-
 .../sis/internal/profile/fra/LegalConstraints.java |   1 +
 .../internal/profile/fra/SecurityConstraints.java  |   1 +
 .../org/apache/sis/storage/geotiff/CRSBuilder.java |   3 +-
 .../sis/internal/netcdf/ucar/DecoderWrapper.java   |   1 -
 .../apache/sis/storage/netcdf/MetadataReader.java  |   1 -
 .../sis/internal/storage/wkt/StoreFormat.java      |   2 +-
 .../apache/sis/storage/CanNotProbeException.java   |   5 +-
 .../java/org/apache/sis/storage/CoverageQuery.java |   2 +-
 .../org/apache/sis/storage/DataStoreRegistry.java  |   2 +-
 .../java/org/apache/sis/storage/FeatureQuery.java  |   5 +
 .../org/apache/sis/storage/StorageConnector.java   |   1 -
 .../storage/gpx/GroupAsPolylineOperation.java      |   1 +
 268 files changed, 955 insertions(+), 608 deletions(-)

diff --cc core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
index d7618304d9,7b3b9d21f2..504756fe38
--- a/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
+++ b/core/sis-metadata/src/main/java/org/apache/sis/internal/simple/SimpleIdentifiedObject.java
@@@ -52,7 -51,8 +52,8 @@@ public class SimpleIdentifiedObject imp
      /**
       * The primary name by which this object is identified.
       */
+     @SuppressWarnings("serial")         // Most SIS implementations are serializable.
 -    protected Identifier name;
 +    protected ReferenceIdentifier name;
  
      /**
       * Creates an identified object without identifier.
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
index 3057fd73cf,1f9d776561..307548b1e0
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/AbstractIdentifiedObject.java
@@@ -180,8 -177,8 +180,8 @@@ public class AbstractIdentifiedObject e
       * @see #getName()
       * @see #getNames()
       */
-     @SuppressWarnings("serial")         // Not statically typed as Serializable.
+     @SuppressWarnings("serial")         // Most SIS implementations are serializable.
 -    private Identifier name;
 +    private ReferenceIdentifier name;
  
      /**
       * An alternative name by which this object is identified, or {@code null} if none.
@@@ -189,9 -186,9 +189,9 @@@
       * we may get both on unmarshalling.
       *
       * <p><b>Consider this field as final!</b>
 -     * This field is modified only at unmarshalling time by {@link Names#add(Identifier)}.</p>
 +     * This field is modified only at unmarshalling time by {@code Names.add(Identifier)}.</p>
       */
-     @SuppressWarnings("serial")         // Not statically typed as Serializable.
+     @SuppressWarnings("serial")         // Most SIS implementations are serializable.
      private Collection<GenericName> alias;
  
      /**
@@@ -204,8 -201,8 +204,8 @@@
       * @see #getIdentifiers()
       * @see #getIdentifier()
       */
-     @SuppressWarnings("serial")         // Not statically typed as Serializable.
+     @SuppressWarnings("serial")         // Most SIS implementations are serializable.
 -    private Set<Identifier> identifiers;
 +    private Set<ReferenceIdentifier> identifiers;
  
      /**
       * Comments on or information about this object, or {@code null} if none.
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
index 1fd0b7390b,dbd6c52dcd..3a421fcb49
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultConcatenatedOperation.java
@@@ -71,8 -70,8 +71,8 @@@ final class DefaultConcatenatedOperatio
       * <p><b>Consider this field as final!</b>
       * This field is modified only at unmarshalling time by {@link #setSteps(CoordinateOperation[])}</p>
       */
-     @SuppressWarnings("serial")         // Not statically typed as Serializable.
+     @SuppressWarnings("serial")         // Most SIS implementations are serializable.
 -    private List<? extends CoordinateOperation> operations;
 +    private List<SingleOperation> operations;
  
      /**
       * Constructs a concatenated operation from a set of properties and a
diff --cc core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
index fc4198a8a1,4ac1387348..38890ea54a
--- a/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
+++ b/core/sis-referencing/src/main/java/org/apache/sis/referencing/operation/DefaultPassThroughOperation.java
@@@ -75,8 -72,8 +75,8 @@@ public class DefaultPassThroughOperatio
       *
       * @see #getOperation()
       */
-     @SuppressWarnings("serial")         // Not statically typed as Serializable.
+     @SuppressWarnings("serial")                 // Most SIS implementations are serializable.
 -    private CoordinateOperation operation;
 +    private SingleOperation operation;
  
      /**
       * Constructs a pass-through operation from a set of properties.