Package org.apache.sis.metadata.iso.quality

## Class AbstractElement

- Object
- - AbstractMetadata
  - - ModifiableMetadata
    - - ISOMetadata
      - - AbstractElement

- All Implemented Interfaces:
    `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Element`
  Direct Known Subclasses:
    `AbstractCompleteness`, `AbstractLogicalConsistency`, `AbstractPositionalAccuracy`, `AbstractTemporalAccuracy`, `AbstractThematicAccuracy`, `DefaultUsability`

      public class AbstractElement
      extends ISOMetadata
      implements Element

  Type of test applied to the data specified by a data quality scope. The following property is mandatory in a well-formed metadata according ISO 19115:
  `DQ_Element` `└─result……………` Value obtained from applying a data quality measure.

  Limitations:

  - Instances of this class are not synchronized for multi-threading. Synchronization, if needed, is caller's responsibility.
  - Serialized objects of this class are not guaranteed to be compatible with future Apache SIS releases. Serialization support is appropriate for short term storage or RMI between applications running the same version of Apache SIS. For long term storage, use `XML` instead.
  Since:
    0.3
  See Also:
    Serialized Form

  Defined in the `sis-metadata` module

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class ModifiableMetadata

      `ModifiableMetadata​.State`

  - ### Field Summary

    - ### Fields inherited from class ISOMetadata

      `identifiers`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `AbstractElement()` | Constructs an initially empty element.
    `AbstractElement​(Element object)` | Constructs a new instance initialized with the values from the specified metadata object.
    `AbstractElement​(Result result)` | Creates an element initialized to the given result.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `static AbstractElement` | `castOrCopy​(Element object)` | Returns a SIS metadata implementation with the values of the given arbitrary implementation.
    `Collection<Date>` | `getDates()` | Returns the date or range of dates on which a data quality measure was applied.
    `InternationalString` | `getEvaluationMethodDescription()` | Returns the description of the evaluation method.
    `EvaluationMethodType` | `getEvaluationMethodType()` | Returns the type of method used to evaluate quality of the dataset.
    `Citation` | `getEvaluationProcedure()` | Returns the reference to the procedure information, or `null` if none.
    `InternationalString` | `getMeasureDescription()` | Returns the description of the measure being determined.
    `Identifier` | `getMeasureIdentification()` | Returns the code identifying a registered standard procedure, or `null` if none.
    `Collection<InternationalString>` | `getNamesOfMeasure()` | Returns the name of the test applied to the data.
    `Collection<Result>` | `getResults()` | Returns the value (or set of values) obtained from applying a data quality measure or the out come of evaluating the obtained value (or set of values) against a specified acceptable conformance quality level.
    `void` | `setDates​(Collection<? extends Date> newValues)` | Sets the date or range of dates on which a data quality measure was applied.
    `void` | `setEvaluationMethodDescription​(InternationalString newValue)` | Sets the description of the evaluation method.
    `void` | `setEvaluationMethodType​(EvaluationMethodType newValue)` | Sets the type of method used to evaluate quality of the dataset.
    `void` | `setEvaluationProcedure​(Citation newValue)` | Sets the reference to the procedure information.
    `void` | `setMeasureDescription​(InternationalString newValue)` | Sets the description of the measure being determined.
    `void` | `setMeasureIdentification​(Identifier newValue)` | Sets the code identifying a registered standard procedure.
    `void` | `setNamesOfMeasure​(Collection<? extends InternationalString> newValues)` | Sets the name of the test applied to the data.
    `void` | `setResults​(Collection<? extends Result> newValues)` | Sets the value (or set of values) obtained from applying a data quality measure or the out come of evaluating the obtained value (or set of values) against a specified acceptable conformance quality level.

    - ### Methods inherited from class ISOMetadata

      `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier, transitionTo`

    - ### Methods inherited from class ModifiableMetadata

      `checkWritePermission, checkWritePermission, collectionType, copyCollection, copyList, copyMap, copySet, freeze, isModifiable, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, unmodifiable, writeCollection, writeList, writeMap, writeSet`

    - ### Methods inherited from class AbstractMetadata

      `asMap, asTreeTable, equals, equals, getInterface, hashCode, isEmpty, prune, toString`

    - ### Methods inherited from class Object

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

- - ### Constructor Detail

    - #### AbstractElement

          public AbstractElement()

      Constructs an initially empty element.

    - #### AbstractElement

          public AbstractElement​(Result result)

      Creates an element initialized to the given result.
      Parameters:
        `result` - the value obtained from applying a data quality measure against a specified acceptable conformance quality level.

    - #### AbstractElement

          public AbstractElement​(Element object)

      Constructs a new instance initialized with the values from the specified metadata object. This is a shallow copy constructor, since the other metadata contained in the given object are not recursively copied.
      Parameters:
        `object` - the metadata to copy values from, or `null` if none.
      See Also:
        `castOrCopy(Element)`

  - ### Method Detail

    - #### castOrCopy

          public static AbstractElement castOrCopy​(Element object)

      Returns a SIS metadata implementation with the values of the given arbitrary implementation. This method performs the first applicable action in the following choices:
      - If the given object is `null`, then this method returns `null`.
      - Otherwise if the given object is an instance of `PositionalAccuracy`, `TemporalAccuracy`, `ThematicAccuracy`, `LogicalConsistency`, `Completeness` or `Usability`, then this method delegates to the `castOrCopy(…)` method of the corresponding SIS subclass. Note that if the given object implements more than one of the above-cited interfaces, then the `castOrCopy(…)` method to be used is unspecified.
      - Otherwise if the given object is already an instance of `AbstractElement`, then it is returned unchanged.
      - Otherwise a new `AbstractElement` instance is created using the copy constructor and returned. Note that this is a shallow copy operation, since the other metadata contained in the given object are not recursively copied.
      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.

    - #### getNamesOfMeasure

          public Collection<InternationalString> getNamesOfMeasure()

      Returns the name of the test applied to the data.
      Specified by:
        `getNamesOfMeasure` in interface `Element`
      Returns:
        name of the test applied to the data.
      See Also:
        Issue SIS-394

    - #### setNamesOfMeasure

          public void setNamesOfMeasure​(Collection<? extends InternationalString> newValues)

      Sets the name of the test applied to the data.
      Parameters:
        `newValues` - the new name of measures.

    - #### getMeasureIdentification

          public Identifier getMeasureIdentification()

      Returns the code identifying a registered standard procedure, or `null` if none.
      Specified by:
        `getMeasureIdentification` in interface `Element`
      Returns:
        code identifying a registered standard procedure, or `null`.
      See Also:
        Issue SIS-394

    - #### setMeasureIdentification

          public void setMeasureIdentification​(Identifier newValue)

      Sets the code identifying a registered standard procedure.
      Parameters:
        `newValue` - the new measure identification.

    - #### getMeasureDescription

          public InternationalString getMeasureDescription()

      Returns the description of the measure being determined.
      Specified by:
        `getMeasureDescription` in interface `Element`
      Returns:
        description of the measure being determined, or `null`.
      See Also:
        Issue SIS-394

    - #### setMeasureDescription

          public void setMeasureDescription​(InternationalString newValue)

      Sets the description of the measure being determined.
      Parameters:
        `newValue` - the new measure description.

    - #### getEvaluationMethodType

          public EvaluationMethodType getEvaluationMethodType()

      Returns the type of method used to evaluate quality of the dataset.
      Specified by:
        `getEvaluationMethodType` in interface `Element`
      Returns:
        type of method used to evaluate quality, or `null`.
      See Also:
        Issue SIS-394

    - #### setEvaluationMethodType

          public void setEvaluationMethodType​(EvaluationMethodType newValue)

      Sets the type of method used to evaluate quality of the dataset.
      Parameters:
        `newValue` - the new evaluation method type.

    - #### getEvaluationMethodDescription

          public InternationalString getEvaluationMethodDescription()

      Returns the description of the evaluation method.
      Specified by:
        `getEvaluationMethodDescription` in interface `Element`
      Returns:
        description of the evaluation method, or `null`.
      See Also:
        Issue SIS-394

    - #### setEvaluationMethodDescription

          public void setEvaluationMethodDescription​(InternationalString newValue)

      Sets the description of the evaluation method.
      Parameters:
        `newValue` - the new evaluation method description.

    - #### getEvaluationProcedure

          public Citation getEvaluationProcedure()

      Returns the reference to the procedure information, or `null` if none.
      Specified by:
        `getEvaluationProcedure` in interface `Element`
      Returns:
        reference to the procedure information, or `null`.
      See Also:
        Issue SIS-394

    - #### setEvaluationProcedure

          public void setEvaluationProcedure​(Citation newValue)

      Sets the reference to the procedure information.
      Parameters:
        `newValue` - the new evaluation procedure.

    - #### getDates

          public Collection<Date> getDates()

      Returns the date or range of dates on which a data quality measure was applied. The collection size is 1 for a single date, or 2 for a range. Returns an empty collection if this information is not available.
      Specified by:
        `getDates` in interface `Element`
      Returns:
        date or range of dates on which a data quality measure was applied.

    - #### setDates

          public void setDates​(Collection<? extends Date> newValues)

      Sets the date or range of dates on which a data quality measure was applied. The collection size is 1 for a single date, or 2 for a range.
      Parameters:
        `newValues` - the new dates, or `null`.

    - #### getResults

          public Collection<Result> getResults()

      Returns the value (or set of values) obtained from applying a data quality measure or the out come of evaluating the obtained value (or set of values) against a specified acceptable conformance quality level.
      Specified by:
        `getResults` in interface `Element`
      Returns:
        set of values obtained from applying a data quality measure.

    - #### setResults

          public void setResults​(Collection<? extends Result> newValues)

      Sets the value (or set of values) obtained from applying a data quality measure or the out come of evaluating the obtained value (or set of values) against a specified acceptable conformance quality level.
      Parameters:
        `newValues` - the new results.