# Interface Requirement

All Known Implementing Classes:
  `DefaultRequirement`

@UML(identifier="MI_Requirement", specification=ISO_19115_2) public interface Requirement
Requirement to be satisfied by the planned data acquisition.

Since:
  2.3

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Citation`
  `getCitation()`
  Identification of reference or guidance material for the requirement.
  `Date`
  `getExpiryDate()`
  Date and time after which collection is no longer valid.
  `Identifier`
  `getIdentifier()`
  Unique name, or code, for the requirement.
  `Priority`
  `getPriority()`
  Relative ordered importance, or urgency, of the requirement.
  `Collection<? extends ResponsibleParty>`
  `getRecipients()`
  Person(s), or body(ies), to receive results of requirement.
  `RequestedDate`
  `getRequestedDate()`
  Required or preferred acquisition date and time.
  `Collection<? extends ResponsibleParty>`
  `getRequestors()`
  Origin of requirement.
  `Collection<? extends Plan>`
  `getSatisfiedPlans()`
  Plan that identifies solution to satisfy the requirement.

- ## Method Details

  - ### getCitation

    @UML(identifier="citation", obligation=OPTIONAL, specification=ISO_19115_2) Citation getCitation()
    Identification of reference or guidance material for the requirement.
    Returns:
      Identification of reference or guidance material.

  - ### getIdentifier

    @UML(identifier="identifier", obligation=MANDATORY, specification=ISO_19115_2) Identifier getIdentifier()
    Unique name, or code, for the requirement.
    Returns:
      Unique name or code.

  - ### getRequestors

    @UML(identifier="requestor", obligation=MANDATORY, specification=ISO_19115_2) Collection<? extends ResponsibleParty> getRequestors()
    Origin of requirement.
    Returns:
      Origin of requirement.

  - ### getRecipients

    @UML(identifier="recipient", obligation=MANDATORY, specification=ISO_19115_2) Collection<? extends ResponsibleParty> getRecipients()
    Person(s), or body(ies), to receive results of requirement.
    Returns:
      Person(s), or body(ies), to receive results.

  - ### getPriority

    @UML(identifier="priority", obligation=MANDATORY, specification=ISO_19115_2) Priority getPriority()
    Relative ordered importance, or urgency, of the requirement.
    Returns:
      Relative ordered importance, or urgency.

  - ### getRequestedDate

    @UML(identifier="requestedDate", obligation=MANDATORY, specification=ISO_19115_2) RequestedDate getRequestedDate()
    Required or preferred acquisition date and time.
    Returns:
      Required or preferred acquisition date and time.

  - ### getExpiryDate

    @UML(identifier="expiryDate", obligation=MANDATORY, specification=ISO_19115_2) Date getExpiryDate()
    Date and time after which collection is no longer valid.

    Warning: The return type of this method may change in GeoAPI 3.1 release. It may be replaced by a type matching more closely either ISO 19108 (Temporal Schema) or ISO 19103.

    Returns:
      Date and time after which collection is no longer valid.

  - ### getSatisfiedPlans

    @UML(identifier="satisfiedPlan", obligation=OPTIONAL, specification=ISO_19115_2) Collection<? extends Plan> getSatisfiedPlans()
    Plan that identifies solution to satisfy the requirement.
    Returns:
      Plan that identifies solution to satisfy the requirement.