Class DefaultCompoundCS

All Implemented Interfaces:
Serializable, Formattable, Deprecable, LenientComparable, org.opengis.referencing.cs.CoordinateSystem, org.opengis.referencing.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
Version:
0.6
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serial number for inter-operability with different versions.
      See Also:
    • components

      private final List<org.opengis.referencing.cs.CoordinateSystem> components
      The coordinate systems.
  • Constructor Details

    • DefaultCompoundCS

      public DefaultCompoundCS(Map<String,?> properties, org.opengis.referencing.cs.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(org.opengis.referencing.cs.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.
    • DefaultCompoundCS

      @Workaround(library="JDK", version="1.7") private DefaultCompoundCS(org.opengis.referencing.cs.CoordinateSystem[] components, org.opengis.referencing.cs.CoordinateSystemAxis[] axes)
      This is a work around for RFE #4093999 in Sun's bug database ("Relax constraint on placement of this()/super() call in constructors").
      Parameters:
      components - the coordinate systems.
  • Method Details

    • clone

      private static org.opengis.referencing.cs.CoordinateSystem[] clone(org.opengis.referencing.cs.CoordinateSystem[] components)
      Returns a clone of the given array, making sure that it contains only non-null elements.
    • getAxes

      private static org.opengis.referencing.cs.CoordinateSystemAxis[] getAxes(org.opengis.referencing.cs.CoordinateSystem[] components)
      Returns all axes in the given sequence of components.
    • getComponents

      public List<org.opengis.referencing.cs.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: