@@ -0,0 +1,2626 @@
+package org.geotools.referencing.operation;%0A%0Aimport java.util.Collection;%0Aimport java.util.Set;%0A%0Aimport org.opengis.metadata.extent.Extent;%0Aimport org.opengis.metadata.quality.PositionalAccuracy;%0Aimport org.opengis.referencing.ReferenceIdentifier;%0Aimport org.opengis.referencing.crs.CoordinateReferenceSystem;%0Aimport org.opengis.referencing.operation.CoordinateOperation;%0Aimport org.opengis.referencing.operation.MathTransform;%0Aimport org.opengis.util.GenericName;%0Aimport org.opengis.util.InternationalString;%0A%0A/**%0A * Used by %7B@link AuthorityBackedFactory%7D when concanating operations, in case we're concatenating%0A * identities, but so that the source or target CRS are not the same as the non identity part. This%0A * happens, for example, when trying to work against a projected CRS with a wrapped geographic CRS%0A * axis in lon/lat order, and with the database providing an operation that uses the same projected%0A * CRS around a geographic CRS with axis in lat/lon order%0A * %0A * @author Andrea Aime - GeoSolutions%0A */%0Aclass ForcedCRSOperation implements CoordinateOperation %7B%0A%0A    CoordinateOperation delegate;%0A%0A    CoordinateReferenceSystem sourceCRS;%0A%0A    CoordinateReferenceSystem targetCRS;%0A%0A    public ForcedCRSOperation(CoordinateOperation delegate, CoordinateReferenceSystem sourceCRS,%0A            CoordinateReferenceSystem targetCRS) %7B%0A        this.delegate = delegate;%0A        this.sourceCRS = sourceCRS;%0A        this.targetCRS = targetCRS;%0A    %7D%0A%0A    public CoordinateReferenceSystem getSourceCRS() %7B%0A        return sourceCRS;%0A    %7D%0A%0A    public CoordinateReferenceSystem getTargetCRS() %7B%0A        return targetCRS;%0A    %7D%0A%0A    public ReferenceIdentifier getName() %7B%0A        return delegate.getName();%0A    %7D%0A%0A    public Collection%3CGenericName%3E getAlias() %7B%0A        return delegate.getAlias();%0A    %7D%0A%0A    public Set%3CReferenceIdentifier%3E getIdentifiers() %7B%0A        return delegate.getIdentifiers();%0A    %7D%0A%0A    public InternationalString getRemarks() %7B%0A        return delegate.getRemarks();%0A    %7D%0A%0A    public String toWKT() throws UnsupportedOperationException %7B%0A        return delegate.toWKT();%0A    %7D%0A%0A    public String getOperationVersion() %7B%0A        return delegate.getOperationVersion();%0A    %7D%0A%0A    public Collection%3CPositionalAccuracy%3E getCoordinateOperationAccuracy() %7B%0A        return delegate.getCoordinateOperationAccuracy();%0A    %7D%0A%0A    public Extent getDomainOfValidity() %7B%0A        return delegate.getDomainOfValidity();%0A    %7D%0A%0A    public InternationalString getScope() %7B%0A        return delegate.getScope();%0A    %7D%0A%0A    public MathTransform getMathTransform() %7B%0A        return delegate.getMathTransform();%0A    %7D%0A%0A%7D%0A

Adding missing class