Package org.apache.sis.referencing.operation

## Class DefaultFormula

- Object
- - FormattableObject
  - - DefaultFormula

- All Implemented Interfaces:
    `Serializable`, `Formula`

      public class DefaultFormula
      extends FormattableObject
      implements Formula, Serializable

  Specification of the coordinate operation method formula. A formula may be given textually, or may be a reference to a publication.

  `Formula` is for human reading. The object that actually does the work of applying formula to coordinate values is `MathTransform`.

  Since:
    0.5
  See Also:
    `DefaultOperationMethod`, `AbstractMathTransform`, `MathTransformProvider`, Serialized Form

  Defined in the `sis-referencing` module

- - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `` | `DefaultFormula​(CharSequence formula)` | Creates a new formula from the given string.
    `` | `DefaultFormula​(Citation citation)` | Creates a new formula from the given citation.
    `protected` | `DefaultFormula​(Formula formula)` | Creates a new formula with the same values than the specified one.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static DefaultFormula` | `castOrCopy​(Formula object)` | Returns a SIS formula implementation with the same values than the given arbitrary implementation.
    `boolean` | `equals​(Object object)` | Compares this formula with the given object for equality.
    `protected String` | `formatTo​(Formatter formatter)` | Formats this formula as a pseudo-Well Known Text element.
    `Citation` | `getCitation()` | Returns the reference to a publication giving the formula(s) or procedure used by the coordinate operation method, or `null` if none.
    `InternationalString` | `getFormula()` | Returns the formula(s) or procedure used by the operation method, or `null` if none.
    `int` | `hashCode()` | Returns a hash code value for this formula.

    - ### Methods inherited from class FormattableObject

      `print, toString, toString, toWKT`

    - ### Methods inherited from class Object

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

- - ### Constructor Detail

    - #### DefaultFormula

          public DefaultFormula​(CharSequence formula)

      Creates a new formula from the given string.
      Parameters:
        `formula` - the formula.

    - #### DefaultFormula

          public DefaultFormula​(Citation citation)

      Creates a new formula from the given citation.
      Parameters:
        `citation` - the citation.

    - #### DefaultFormula

          protected DefaultFormula​(Formula formula)

      Creates a new formula with the same values than the specified one. This copy constructor provides a way to convert an arbitrary implementation into a SIS 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:
        `formula` - the formula to copy.
      See Also:
        `castOrCopy(Formula)`

  - ### Method Detail

    - #### castOrCopy

          public static DefaultFormula castOrCopy​(Formula object)

      Returns a SIS formula 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 SIS implementation, then the given object is returned unchanged. Otherwise a new SIS implementation is created and initialized to the attribute values of the given object.
      Parameters:
        `object` - the object to get as a SIS implementation, or `null` if none.
      Returns:
        a SIS implementation containing the values of the given object (may be the given object itself), or `null` if the argument was null.

    - #### getFormula

          public InternationalString getFormula()

      Returns the formula(s) or procedure used by the operation method, or `null` if none.
      Specified by:
        `getFormula` in interface `Formula`

    - #### getCitation

          public Citation getCitation()

      Returns the reference to a publication giving the formula(s) or procedure used by the coordinate operation method, or `null` if none.
      Specified by:
        `getCitation` in interface `Formula`

    - #### hashCode

          public int hashCode()

      Returns a hash code value for this formula.
      Overrides:
        `hashCode` in class `Object`

    - #### equals

          public boolean equals​(Object object)

      Compares this formula with the given object for equality.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `object` - the object to compare with this formula.
      Returns:
        `true` if both objects are equal.

    - #### formatTo

          protected String formatTo​(Formatter formatter)

      Formats this formula as a pseudo-Well Known Text element.
      Compatibility note: ISO 19162 does not define a WKT representation for `Formula` objects. The text formatted by this method is SIS-specific and causes the text to be flagged as invalid WKT. The WKT content of this element may change in any future SIS version.
      Specified by:
        `formatTo` in class `FormattableObject`
      Parameters:
        `formatter` - the formatter where to format the inner content of this WKT element.
      Returns:
        `"Formula"`.
      See Also:
        `FormattableObject​.toWKT()`, `FormattableObject​.toString()`