org.geotools.referencing.crs
Class AbstractDerivedCRS

java.lang.Object
  extended byorg.geotools.referencing.wkt.Formattable
      extended byorg.geotools.referencing.AbstractIdentifiedObject
          extended byorg.geotools.referencing.AbstractReferenceSystem
              extended byorg.geotools.referencing.crs.AbstractCRS
                  extended byorg.geotools.referencing.crs.AbstractSingleCRS
                      extended byorg.geotools.referencing.crs.AbstractDerivedCRS
All Implemented Interfaces:
org.opengis.referencing.crs.CoordinateReferenceSystem, org.opengis.referencing.crs.GeneralDerivedCRS, org.opengis.referencing.IdentifiedObject, org.opengis.referencing.ReferenceSystem, java.io.Serializable, org.opengis.referencing.crs.SingleCRS
Direct Known Subclasses:
DefaultDerivedCRS, DefaultProjectedCRS

public class AbstractDerivedCRS
extends AbstractSingleCRS
implements org.opengis.referencing.crs.GeneralDerivedCRS

A coordinate reference system that is defined by its coordinate conversion from another coordinate reference system (not by a datum).

This class is conceptually abstract, even if it is technically possible to instantiate it. Typical applications should create instances of the most specific subclass with prefix instead. An exception to this rule may occurs when it is not possible to identify the exact type.

Since:
2.1
Version:
$Id: AbstractDerivedCRS.java 17672 2006-01-19 00:25:55Z desruisseaux $
Author:
Martin Desruisseaux
See Also:
Serialized Form

Field Summary
static AbstractIdentifiedObject _COMPARING
          A lock for avoiding never-ending recursivity in the equals method.
protected  org.opengis.referencing.crs.CoordinateReferenceSystem baseCRS
          The base coordinate reference system.
protected  org.opengis.referencing.operation.Conversion conversionFromBase
          The conversion from the base CRS to this CRS.
 
Fields inherited from class org.geotools.referencing.crs.AbstractSingleCRS
datum
 
Fields inherited from class org.geotools.referencing.crs.AbstractCRS
coordinateSystem
 
Fields inherited from class org.geotools.referencing.AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from interface org.opengis.referencing.ReferenceSystem
SCOPE_KEY, VALID_AREA_KEY
 
Fields inherited from interface org.opengis.referencing.IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
protected AbstractDerivedCRS(org.opengis.referencing.crs.GeneralDerivedCRS crs)
          Constructs a new derived CRS with the same values than the specified one.
protected AbstractDerivedCRS(java.util.Map properties, org.opengis.referencing.operation.Conversion conversionFromBase, org.opengis.referencing.crs.CoordinateReferenceSystem base, org.opengis.referencing.operation.MathTransform baseToDerived, org.opengis.referencing.cs.CoordinateSystem derivedCS)
          Constructs a derived CRS from a defining conversion.
protected AbstractDerivedCRS(java.util.Map properties, org.opengis.referencing.operation.OperationMethod method, org.opengis.referencing.crs.CoordinateReferenceSystem base, org.opengis.referencing.operation.MathTransform baseToDerived, org.opengis.referencing.cs.CoordinateSystem derivedCS)
          Constructs a derived CRS from a set of properties.
 
Method Summary
 boolean equals(AbstractIdentifiedObject object, boolean compareMetadata)
          Compare this coordinate reference system with the specified object for equality.
protected  java.lang.String formatWKT(Formatter formatter)
          Format the inner part of a Well Known Text (WKT) element.
 org.opengis.referencing.crs.CoordinateReferenceSystem getBaseCRS()
          Returns the base coordinate reference system.
 org.opengis.referencing.operation.Conversion getConversionFromBase()
          Returns the conversion from the base CRS to this CRS.
 int hashCode()
          Returns a hash value for this derived CRS.
 
Methods inherited from class org.geotools.referencing.crs.AbstractSingleCRS
getAxis, getDatum, getDimension
 
Methods inherited from class org.geotools.referencing.crs.AbstractCRS
distance, getCoordinateSystem
 
Methods inherited from class org.geotools.referencing.AbstractReferenceSystem
getScope, getValidArea
 
Methods inherited from class org.geotools.referencing.AbstractIdentifiedObject
asSet, ensureAngularUnit, ensureLinearUnit, ensureNonNull, ensureNonNull, ensureTimeUnit, equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, nameMatches, nameMatches
 
Methods inherited from class org.geotools.referencing.wkt.Formattable
toString, toWKT, toWKT, toWKT
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.opengis.referencing.crs.SingleCRS
getCoordinateSystem, getDatum
 
Methods inherited from interface org.opengis.referencing.ReferenceSystem
getScope, getValidArea
 
Methods inherited from interface org.opengis.referencing.IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Field Detail

_COMPARING

public static AbstractIdentifiedObject _COMPARING
A lock for avoiding never-ending recursivity in the equals method. This lock is necessary because AbstractDerivedCRS objects contain a conversionFromBase field, which contains a AbstractCoordinateOperation.targetCRS field set to this AbstractDerivedCRS object.

This field can be though as a boolean flag set to true when a comparaison is in progress. A null value means false, and a non-null value means true. The non-null value is used for assertion.

When an equals method is invoked, this _COMPARING field is set to the originator (either the AbstractDerivedCRS or the AbstractCoordinateOperation object where the comparaison begin).

DO NOT USE THIS FIELD. It is strictly for internal use by equals(org.geotools.referencing.AbstractIdentifiedObject, boolean) and AbstractCoordinateOperation.equals(org.geotools.referencing.AbstractIdentifiedObject, boolean) methods.

To Do:
Hide this field from the javadoc. It is not possible to make it package-privated because AbstractCoordinateOperation lives in a different package.

baseCRS

protected final org.opengis.referencing.crs.CoordinateReferenceSystem baseCRS
The base coordinate reference system.


conversionFromBase

protected final org.opengis.referencing.operation.Conversion conversionFromBase
The conversion from the base CRS to this CRS.

Constructor Detail

AbstractDerivedCRS

protected AbstractDerivedCRS(org.opengis.referencing.crs.GeneralDerivedCRS crs)
Constructs a new derived CRS with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotools one or a user-defined one (as a subclass), usually in order to leverage some implementation-specific API. This constructor performs a shallow copy, i.e. the properties are not cloned.

Since:
2.2

AbstractDerivedCRS

protected AbstractDerivedCRS(java.util.Map properties,
                             org.opengis.referencing.operation.Conversion conversionFromBase,
                             org.opengis.referencing.crs.CoordinateReferenceSystem base,
                             org.opengis.referencing.operation.MathTransform baseToDerived,
                             org.opengis.referencing.cs.CoordinateSystem derivedCS)
                      throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Constructs a derived CRS from a defining conversion. The properties are given unchanged to the super-class constructor.

Parameters:
properties - Name and other properties to give to the new derived CRS object.
conversionFromBase - The defining conversion.
base - Coordinate reference system to base the derived CRS on.
baseToDerived - The transform from the base CRS to returned CRS.
derivedCS - The coordinate system for the derived CRS. The number of axes must match the target dimension of the transform .
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if the source and target dimension of don't match the dimension of and respectively.

AbstractDerivedCRS

protected AbstractDerivedCRS(java.util.Map properties,
                             org.opengis.referencing.operation.OperationMethod method,
                             org.opengis.referencing.crs.CoordinateReferenceSystem base,
                             org.opengis.referencing.operation.MathTransform baseToDerived,
                             org.opengis.referencing.cs.CoordinateSystem derivedCS)
                      throws org.opengis.spatialschema.geometry.MismatchedDimensionException
Constructs a derived CRS from a set of properties. The properties are given unchanged to the super-class constructor. The following optional properties are also understood:

Property name Value type Value given to
 "conversion.name"   String   getConversionFromBase().getName()

Additional properties for the DefaultConversion object to be created can be specified with the "conversion." prefix added in front of property names (example: "conversion.remarks"). The same applies for operation method, using the "method." prefix.

Parameters:
properties - Name and other properties to give to the new derived CRS object and to the underlying conversion.
method - A description of the method for the conversion.
base - Coordinate reference system to base the derived CRS on.
baseToDerived - The transform from the base CRS to returned CRS.
derivedCS - The coordinate system for the derived CRS. The number of axes must match the target dimension of the transform .
Throws:
org.opengis.spatialschema.geometry.MismatchedDimensionException - if the source and target dimension of don't match the dimension of and respectively.
Method Detail

getBaseCRS

public org.opengis.referencing.crs.CoordinateReferenceSystem getBaseCRS()
Returns the base coordinate reference system.

Specified by:
getBaseCRS in interface org.opengis.referencing.crs.GeneralDerivedCRS
Returns:
The base coordinate reference system.

getConversionFromBase

public org.opengis.referencing.operation.Conversion getConversionFromBase()
Returns the conversion from the base CRS to this CRS.

Specified by:
getConversionFromBase in interface org.opengis.referencing.crs.GeneralDerivedCRS
Returns:
The conversion to this CRS.

equals

public boolean equals(AbstractIdentifiedObject object,
                      boolean compareMetadata)
Compare this coordinate reference system with the specified object for equality.

Overrides:
equals in class AbstractSingleCRS
Parameters:
object - The object to compare to .
compareMetadata - for performing a strict comparaison, or for comparing only properties relevant to transformations.
Returns:
if both objects are equal.

hashCode

public int hashCode()
Returns a hash value for this derived CRS.

Overrides:
hashCode in class AbstractSingleCRS
Returns:
The hash code value. This value doesn't need to be the same in past or future versions of this class.

formatWKT

protected java.lang.String formatWKT(Formatter formatter)
Format the inner part of a Well Known Text (WKT) element.

Overrides:
formatWKT in class AbstractSingleCRS
Parameters:
formatter - The formatter to use.
Returns:
The WKT element name, which is "FITTED_CS"


Copyright © GeoTools. All Rights Reserved.