/** * Constructs a single operation from a set of properties and the given transform. The * properties given in argument follow the same rules than for the {@link * AbstractCoordinateOperation} constructor. * * @param properties Set of properties. Should contains at least {@code "name"}. * @param sourceCRS The source CRS. * @param targetCRS The target CRS. * @param operation The operation to apply on the subset of a coordinate tuple. * @param transform The {@linkplain MathTransformFactory#createPassThroughTransform pass through * transform}. */ public DefaultPassThroughOperation( final Map<String, ?> properties, final CoordinateReferenceSystem sourceCRS, final CoordinateReferenceSystem targetCRS, final Operation operation, final MathTransform transform) { super(properties, sourceCRS, targetCRS, transform); this.operation = operation; ensureNonNull("operation", operation); ensureValidDimension(operation.getSourceCRS(), transform.getSourceDimensions()); ensureValidDimension(operation.getTargetCRS(), transform.getTargetDimensions()); }