org.geotoolkit.referencing.crs
Class DefaultCompoundCRS

Object
  extended by FormattableObject
      extended by AbstractIdentifiedObject
          extended by AbstractReferenceSystem
              extended by AbstractCRS
                  extended by DefaultCompoundCRS
All Implemented Interfaces:
Serializable, Formattable, LenientComparable, CompoundCRS, CoordinateReferenceSystem, IdentifiedObject, ReferenceSystem

@Immutable
public class DefaultCompoundCRS
extends AbstractCRS
implements CompoundCRS

A coordinate reference system describing the position of points through two or more independent coordinate reference systems. Thus it is associated with two or more coordinate systems and datums by defining the compound CRS as an ordered set of two or more instances of CoordinateReferenceSystem.

Since:
1.2
Version:
3.18
Author:
Martin Desruisseaux (IRD, Geomatys)
See Also:
Serialized Form
Module:
referencing/geotk-referencing (download)    View source code for this class

Field Summary
 
Fields inherited from class AbstractIdentifiedObject
EMPTY_ALIAS_ARRAY, EMPTY_IDENTIFIER_ARRAY, IDENTIFIER_COMPARATOR, NAME_COMPARATOR, REMARKS_COMPARATOR
 
Fields inherited from class FormattableObject
EPSG, GEOTIFF, INTERNAL, OGC, SINGLE_LINE
 
Fields inherited from interface ReferenceSystem
DOMAIN_OF_VALIDITY_KEY, SCOPE_KEY
 
Fields inherited from interface IdentifiedObject
ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY
 
Constructor Summary
DefaultCompoundCRS(CompoundCRS crs)
          Constructs a new compound CRS with the same values than the specified one.
DefaultCompoundCRS(Map<String,?> properties, CoordinateReferenceSystem... crs)
          Constructs a coordinate reference system from a set of properties.
DefaultCompoundCRS(String name, CoordinateReferenceSystem[] crs)
          Constructs a coordinate reference system from a name.
DefaultCompoundCRS(String name, CoordinateReferenceSystem head, CoordinateReferenceSystem tail)
          Constructs a coordinate reference system from a name and two CRS.
DefaultCompoundCRS(String name, CoordinateReferenceSystem head, CoordinateReferenceSystem middle, CoordinateReferenceSystem tail)
          Constructs a coordinate reference system from a name and three CRS.
 
Method Summary
protected  int computeHashCode()
          Computes a hash value for this identified object.
 boolean equals(Object object, ComparisonMode mode)
          Compares this coordinate reference system with the specified object for equality.
 String formatWKT(Formatter formatter)
          Formats the inner part of a Well Known Text (WKT) element.
 List<CoordinateReferenceSystem> getComponents()
          The ordered list of coordinate reference systems.
 List<SingleCRS> getSingleCRS()
          Returns the ordered list of single coordinate reference systems.
static List<SingleCRS> getSingleCRS(CoordinateReferenceSystem crs)
          Returns the ordered list of single coordinate reference systems for the specified CRS.
static DefaultCompoundCRS wrap(CompoundCRS object)
          Returns a Geotk CRS implementation with the same values than the given arbitrary implementation.
 
Methods inherited from class AbstractCRS
distance, getCoordinateSystem
 
Methods inherited from class AbstractReferenceSystem
getDomainOfValidity, getScope
 
Methods inherited from class AbstractIdentifiedObject
equals, equals, equals, equals, getAlias, getIdentifier, getIdentifier, getIdentifiers, getName, getName, getName, getProperties, getProperties, getRemarks, hashCode, nameMatches, nameMatches, nameMatches
 
Methods inherited from class FormattableObject
getDefaultIndentation, print, setDefaultIndentation, toString, toWKT, toWKT, toWKT
 
Methods inherited from class Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface CoordinateReferenceSystem
getCoordinateSystem
 
Methods inherited from interface ReferenceSystem
getDomainOfValidity, getScope
 
Methods inherited from interface IdentifiedObject
getAlias, getIdentifiers, getName, getRemarks, toWKT
 

Constructor Detail

DefaultCompoundCRS

public DefaultCompoundCRS(CompoundCRS crs)
Constructs a new compound CRS with the same values than the specified one. This copy constructor provides a way to wrap an arbitrary implementation into a Geotk 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.

Parameters:
crs - The coordinate reference system to copy.
Since:
2.2

DefaultCompoundCRS

public DefaultCompoundCRS(String name,
                          CoordinateReferenceSystem head,
                          CoordinateReferenceSystem tail)
Constructs a coordinate reference system from a name and two CRS.

Parameters:
name - The name.
head - The head CRS.
tail - The tail CRS.

DefaultCompoundCRS

public DefaultCompoundCRS(String name,
                          CoordinateReferenceSystem head,
                          CoordinateReferenceSystem middle,
                          CoordinateReferenceSystem tail)
Constructs a coordinate reference system from a name and three CRS.

Parameters:
name - The name.
head - The head CRS.
middle - The middle CRS.
tail - The tail CRS.

DefaultCompoundCRS

public DefaultCompoundCRS(String name,
                          CoordinateReferenceSystem[] crs)
Constructs a coordinate reference system from a name.

Parameters:
name - The name.
crs - The array of coordinate reference system making this compound CRS.

DefaultCompoundCRS

public DefaultCompoundCRS(Map<String,?> properties,
                          CoordinateReferenceSystem... crs)
Constructs a coordinate reference system from a set of properties. The properties are given unchanged to the super-class constructor.

Parameters:
properties - Set of properties. Should contains at least "name".
crs - The array of coordinate reference system making this compound CRS.
Method Detail

wrap

public static DefaultCompoundCRS wrap(CompoundCRS object)
Returns a Geotk CRS implementation with the same values than the given arbitrary implementation. If the given object is null, then this method returns null. Otherwise if the given object is already a Geotk implementation, then the given object is returned unchanged. Otherwise a new Geotk implementation is created and initialized to the attribute values of the given object.

Parameters:
object - The object to wrap in a Geotk implementation, or null if none.
Returns:
A Geotk implementation containing the values of the given object (may be the given object itself), or null if the argument was null.
Since:
3.18

getComponents

public List<CoordinateReferenceSystem> getComponents()
The ordered list of coordinate reference systems.

Specified by:
getComponents in interface CompoundCRS
Returns:
The coordinate reference systems as an unmodifiable list.

getSingleCRS

public List<SingleCRS> getSingleCRS()
Returns the ordered list of single coordinate reference systems. If this compound CRS contains other compound CRS, all of them are expanded in an array of SingleCRS objects.

Returns:
The single coordinate reference systems as an unmodifiable list.

getSingleCRS

public static List<SingleCRS> getSingleCRS(CoordinateReferenceSystem crs)
Returns the ordered list of single coordinate reference systems for the specified CRS. The specified CRS doesn't need to be a Geotk implementation.

Parameters:
crs - The coordinate reference system, or null.
Returns:
The single coordinate reference systems, or an empty list if the given CRS is neither a SingleCRS or a CompoundCRS.

equals

public boolean equals(Object object,
                      ComparisonMode mode)
Compares this coordinate reference system with the specified object for equality.

Specified by:
equals in interface LenientComparable
Overrides:
equals in class AbstractCRS
Parameters:
object - The object to compare to this.
mode - STRICT for performing a strict comparison, or IGNORE_METADATA for comparing only properties relevant to transformations.
Returns:
true if both objects are equal.

computeHashCode

protected int computeHashCode()
Computes a hash value for this identified object. This method is invoked by AbstractIdentifiedObject.hashCode() when first needed.

Implementation specific feature
In the Geotk implementation, the name, identifiers and remarks are not used for hash code computation. Consequently two identified objects will return the same hash value if they are equal in the sense of equals(…, ComparisonMode.IGNORE_METADATA). This feature allows users to implement metadata-insensitive HashMap.

Overrides:
computeHashCode in class AbstractCRS
Returns:
The hash code value. This value may change between different execution of the Geotk library.

formatWKT

public String formatWKT(Formatter formatter)
Formats the inner part of a Well Known Text (WKT) element.

Specified by:
formatWKT in interface Formattable
Overrides:
formatWKT in class AbstractCRS
Parameters:
formatter - The formatter to use.
Returns:
The name of the WKT element type, which is "COMPD_CS".
See Also:
FormattableObject.toWKT(), FormattableObject.toString()


Copyright © 2009-2011 Geotoolkit.org. All Rights Reserved.