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

  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, collectionType, copyCollection, copyList, copyMap, copySet, deepCopy, nonNullCollection, nonNullList, nonNullMap, nonNullSet, singleton, state, 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 Details

  - ### 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 Details

  - ### 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.