Package org.apache.sis.referencing.cs

## Class DefaultCompoundCS

- Object
- - FormattableObject
  - - AbstractIdentifiedObject
    - - AbstractCS
      - - DefaultCompoundCS

- All Implemented Interfaces:
    `Serializable`, `Deprecable`, `LenientComparable`, `CoordinateSystem`, `IdentifiedObject`

      public class DefaultCompoundCS
      extends AbstractCS

  A coordinate system made of two or more independent coordinate systems.

  Permitted associations
  Used with CRS | Permitted axis names
  --- | ---
  Compound | (not applicable)

  Immutability and thread safety
  This class is immutable and thus thread-safe if the property values (not necessarily the map itself) and the `CoordinateSystemAxis` instances given to the constructor are also immutable. Unless otherwise noted in the javadoc, this condition holds if all components were created using only SIS factories and static constants.
  Since:
    0.4
  See Also:
    Serialized Form

  Defined in the `sis-referencing` module

- - ### Field Summary

    - ### Fields inherited from class AbstractIdentifiedObject

      `DEPRECATED_KEY, LOCALE_KEY`

    - ### Fields inherited from interface IdentifiedObject

      `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `DefaultCompoundCS​(Map<String,​?> properties, CoordinateSystem... components)` | Constructs a coordinate system from a set of properties and a sequence of coordinate systems.
    `DefaultCompoundCS​(CoordinateSystem... components)` | Constructs a compound coordinate system from a sequence of coordinate systems.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `equals​(Object object, ComparisonMode mode)` | Compares this coordinate system with the specified object for equality.
    `List<CoordinateSystem>` | `getComponents()` | Returns all coordinate systems in this compound CS.

    - ### Methods inherited from class AbstractCS

      `castOrCopy, computeHashCode, forConvention, formatTo, getAxis, getDimension, getInterface`

    - ### Methods inherited from class AbstractIdentifiedObject

      `castOrCopy, equals, getAlias, getDescription, getIdentifiers, getName, getRemarks, hashCode, isDeprecated, isHeuristicMatchForName`

    - ### Methods inherited from class FormattableObject

      `print, toString, toString, toWKT`

    - ### Methods inherited from class Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface IdentifiedObject

      `getAlias, getIdentifiers, getName, getRemarks, toWKT`

- - ### Constructor Detail

    - #### DefaultCompoundCS

          public DefaultCompoundCS​(Map<String,​?> properties,
                                   CoordinateSystem... components)

      Constructs a coordinate system from a set of properties and a sequence of coordinate systems. The properties map is given unchanged to the super-class constructor. The following table is a reminder of main (not all) properties:

      Recognized properties (non exhaustive list)
      Property name | Value type | Returned by
      --- | --- | ---
      "name" | `ReferenceIdentifier` or `String` | `AbstractIdentifiedObject.getName()`
      "alias" | `GenericName` or `CharSequence` (optionally as array) | `AbstractIdentifiedObject.getAlias()`
      "identifiers" | `ReferenceIdentifier` (optionally as array) | `AbstractIdentifiedObject.getIdentifiers()`
      "remarks" | `InternationalString` or `String` | `AbstractIdentifiedObject.getRemarks()`

      Parameters:
        `properties` - the properties to be given to the identified object.
        `components` - the set of coordinate system.

    - #### DefaultCompoundCS

          public DefaultCompoundCS​(CoordinateSystem... components)

      Constructs a compound coordinate system from a sequence of coordinate systems. A default name for this CS will be inferred from the names of all specified CS.
      Parameters:
        `components` - the set of coordinate system.

  - ### Method Detail

    - #### getComponents

          public List<CoordinateSystem> getComponents()

      Returns all coordinate systems in this compound CS.
      Returns:
        all coordinate systems in this compound CS.

    - #### equals

          public boolean equals​(Object object,
                                ComparisonMode mode)

      Compares this coordinate system with the specified object for equality.
      Specified by:
        `equals` in interface `LenientComparable`
      Overrides:
        `equals` in class `AbstractCS`
      Parameters:
        `object` - the object to compare to `this`.
        `mode` - `STRICT` for performing a strict comparison, or `IGNORE_METADATA` for comparing only properties relevant to coordinate transformations.
      Returns:
        `true` if both objects are equal.
      See Also:
        `AbstractIdentifiedObject​.computeHashCode()`, `Utilities​.deepEquals(Object, Object, ComparisonMode)`