# Interface OperationMethod

All Superinterfaces:
  `IdentifiedObject`

All Known Implementing Classes:
  `DefaultOperationMethod`

@UML(identifier="CC_OperationMethod", specification=ISO_19111) public interface OperationMethod extends IdentifiedObject
Definition of an algorithm used to perform a coordinate operation. Most operation methods use a number of operation parameters, although some coordinate conversions use none. Each coordinate operation using the method assigns values to these parameters.

Since:
  1.0
See Also:
  - `CoordinateOperation`

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `FORMULA_KEY`
  Key for the `"formula"` property.

  ### Fields inherited from interface IdentifiedObject

  `ALIAS_KEY, IDENTIFIERS_KEY, NAME_KEY, REMARKS_KEY`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Formula`
  `getFormula()`
  Formula(s) or procedure used by this operation method.
  `ParameterDescriptorGroup`
  `getParameters()`
  The set of parameters.
  `Integer`
  `getSourceDimensions()`
  Number of dimensions in the source CRS of this operation method.
  `Integer`
  `getTargetDimensions()`
  Number of dimensions in the target CRS of this operation method.

  ### Methods inherited from interface IdentifiedObject

  `getAlias, getIdentifiers, getName, getRemarks, toWKT`

- ## Field Details

  - ### FORMULA_KEY

    static final String FORMULA_KEY
    Key for the `"formula"` property. This is used for setting the value to be returned by `getFormula()`.
    See Also:
      - `getFormula()`
      - Constant Field Values

- ## Method Details

  - ### getFormula

    @UML(identifier="formulaReference", obligation=MANDATORY, specification=ISO_19111) Formula getFormula()
    Formula(s) or procedure used by this operation method. This may be a reference to a publication. Note that the operation method may not be analytic, in which case this attribute references or contains the procedure, not an analytic formula.
    Returns:
      The formula used by this method.

  - ### getSourceDimensions

    @UML(identifier="sourceDimensions", obligation=OPTIONAL, specification=ISO_19111) Integer getSourceDimensions()
    Number of dimensions in the source CRS of this operation method. Note that some operation methods work with an arbitrary number of dimensions (e.g. Affine Transform) and may return `null`.
    Returns:
      The dimension of source CRS, or `null` if unknown.

  - ### getTargetDimensions

    @UML(identifier="targetDimensions", obligation=OPTIONAL, specification=ISO_19111) Integer getTargetDimensions()
    Number of dimensions in the target CRS of this operation method. Note that some operation methods work with an arbitrary number of dimensions (e.g. Affine Transform) and may return `null`.
    Returns:
      The dimension of target CRS, or `null` if unknown.

  - ### getParameters

    @UML(identifier="parameter", obligation=MANDATORY, specification=ISO_19111) ParameterDescriptorGroup getParameters()
    The set of parameters.
    Returns:
      The parameters, or an empty group if none.