# Class AbstractElement

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
AbstractElement

All Implemented Interfaces:
  `Serializable`, `Emptiable`, `LenientComparable`, `IdentifiedObject`, `Element`

Direct Known Subclasses:
  `AbstractCompleteness`, `AbstractLogicalConsistency`, `AbstractMetaquality`, `AbstractPositionalAccuracy`, `AbstractTemporalQuality`, `AbstractThematicAccuracy`, `DefaultUsability`

public class AbstractElement extends ISOMetadata implements Element
Aspect of quantitative quality information. See the `Element` GeoAPI interface for more details. The following property is mandatory in a well-formed metadata according ISO 19157:
`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

- ## 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()`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.getDates()`.
  `Collection<Element>`
  `getDerivedElements()`
  Returns the original elements in case of aggregation or derivation.
  `DefaultEvaluationMethod`
  `getEvaluationMethod()`
  Returns the evaluation information.
  `InternationalString`
  `getEvaluationMethodDescription()`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.getEvaluationMethodDescription()`.
  `EvaluationMethodType`
  `getEvaluationMethodType()`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.getEvaluationMethodType()`.
  `Citation`
  `getEvaluationProcedure()`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.getEvaluationProcedure()`.
  `InternationalString`
  `getMeasureDescription()`
  Deprecated.
  Replaced by `DefaultMeasureReference​.getMeasureDescription()`.
  `Identifier`
  `getMeasureIdentification()`
  Deprecated.
  Replaced by `DefaultMeasureReference​.getMeasureIdentification()`.
  `DefaultMeasureReference`
  `getMeasureReference()`
  Returns an identifier of a measure fully described elsewhere.
  `Collection<InternationalString>`
  `getNamesOfMeasure()`
  Deprecated.
  Replaced by `DefaultMeasureReference​.getNamesOfMeasure()`.
  `Collection<Result>`
  `getResults()`
  Returns the value(s) obtained from applying a data quality measure.
  `InternationalString`
  `getStandaloneQualityReportDetails()`
  Returns the clause in the standalone quality report where this data quality element is described.
  `MetadataStandard`
  `getStandard()`
  Returns the metadata standard, which is ISO 19157.
  `void`
  `setDates(Collection<? extends Date> newValues)`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.setDates(Collection)`.
  `void`
  `setDerivedElements(Collection<? extends Element> newValues)`
  Sets the original elements in case of aggregation or derivation.
  `void`
  `setEvaluationMethod(DefaultEvaluationMethod newValue)`
  Sets the evaluation information.
  `void`
  `setEvaluationMethodDescription(InternationalString newValue)`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.setEvaluationMethodDescription(InternationalString)`.
  `void`
  `setEvaluationMethodType(EvaluationMethodType newValue)`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.setEvaluationMethodType(EvaluationMethodType)`.
  `void`
  `setEvaluationProcedure(Citation newValue)`
  Deprecated.
  Replaced by `DefaultEvaluationMethod​.setEvaluationProcedure(Citation)`.
  `void`
  `setMeasureDescription(InternationalString newValue)`
  Deprecated.
  Replaced by `DefaultMeasureReference​.setMeasureDescription(InternationalString)`.
  `void`
  `setMeasureIdentification(Identifier newValue)`
  Deprecated.
  Replaced by `DefaultMeasureReference​.setMeasureIdentification(Identifier)`.
  `void`
  `setMeasureReference(DefaultMeasureReference newValues)`
  Sets an identifier of a measure fully described elsewhere.
  `void`
  `setNamesOfMeasure(Collection<? extends InternationalString> newValues)`
  Deprecated.
  Replaced by `DefaultMeasureReference​.setNamesOfMeasure(Collection)`.
  `void`
  `setResults(Collection<? extends Result> newValues)`
  Sets the value(s) obtained from applying a data quality measure.
  `void`
  `setStandaloneQualityReportDetails(InternationalString newValue)`
  Sets the clause in the standalone quality report where this data quality element is described.

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, setIdentifier`

  ### 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, clone, equals, equals, getInterface, hashCode, isEmpty, nilReasons, prune, toString`

  ### Methods inherited from class Object

  `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, because 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`, `ThematicAccuracy`, `LogicalConsistency` or `Completeness`, 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, because 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.

  - ### getStandaloneQualityReportDetails

    @UML(identifier="standaloneQualityReportDetails", obligation=OPTIONAL, specification=UNSPECIFIED) public InternationalString getStandaloneQualityReportDetails()
    Returns the clause in the standalone quality report where this data quality element is described. May apply to any related data quality element (original results in case of derivation or aggregation).
    Returns:
      clause where this data quality element is described, or `null` if none.
    Since:
      1.3

  - ### setStandaloneQualityReportDetails

    public void setStandaloneQualityReportDetails(InternationalString newValue)
    Sets the clause in the standalone quality report where this data quality element is described.
    Parameters:
      `newValue` - the clause in the standalone quality report.
    Since:
      1.3

  - ### getMeasureReference

    @UML(identifier="measure", obligation=OPTIONAL, specification=UNSPECIFIED) public DefaultMeasureReference getMeasureReference()
    Returns an identifier of a measure fully described elsewhere.
    Returns:
      reference to the measure used, or `null` if none.
    Since:
      1.3

  - ### setMeasureReference

    public void setMeasureReference(DefaultMeasureReference newValues)
    Sets an identifier of a measure fully described elsewhere.
    Parameters:
      `newValues` - the new measure identifier.
    Since:
      1.3

  - ### getNamesOfMeasure

    @Deprecated(since="1.3") public Collection<InternationalString> getNamesOfMeasure()
    Deprecated.
    Replaced by `DefaultMeasureReference​.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.

  - ### setNamesOfMeasure

    @Deprecated(since="1.3") public void setNamesOfMeasure(Collection<? extends InternationalString> newValues)
    Deprecated.
    Replaced by `DefaultMeasureReference​.setNamesOfMeasure(Collection)`.
    Sets the name of the test applied to the data.
    Parameters:
      `newValues` - the new name of measures.

  - ### getMeasureIdentification

    @Deprecated(since="1.3") public Identifier getMeasureIdentification()
    Deprecated.
    Replaced by `DefaultMeasureReference​.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`.

  - ### setMeasureIdentification

    @Deprecated(since="1.3") public void setMeasureIdentification(Identifier newValue)
    Deprecated.
    Replaced by `DefaultMeasureReference​.setMeasureIdentification(Identifier)`.
    Sets the code identifying a registered standard procedure.
    Parameters:
      `newValue` - the new measure identification.

  - ### getMeasureDescription

    @Deprecated(since="1.3") public InternationalString getMeasureDescription()
    Deprecated.
    Replaced by `DefaultMeasureReference​.getMeasureDescription()`.
    Returns the description of the measure being determined.
    Specified by:
      `getMeasureDescription` in interface `Element`
    Returns:
      description of the measure being determined, or `null`.

  - ### setMeasureDescription

    @Deprecated(since="1.3") public void setMeasureDescription(InternationalString newValue)
    Deprecated.
    Replaced by `DefaultMeasureReference​.setMeasureDescription(InternationalString)`.
    Sets the description of the measure being determined.
    Parameters:
      `newValue` - the new measure description.

  - ### getEvaluationMethod

    @UML(identifier="evaluationMethod", obligation=OPTIONAL, specification=UNSPECIFIED) public DefaultEvaluationMethod getEvaluationMethod()
    Returns the evaluation information.
    Returns:
      information about the evaluation method, or `null` if none.
    Since:
      1.3

  - ### setEvaluationMethod

    public void setEvaluationMethod(DefaultEvaluationMethod newValue)
    Sets the evaluation information.
    Parameters:
      `newValue` - the new evaluation information.
    Since:
      1.3

  - ### getEvaluationMethodType

    @Deprecated(since="1.3") public EvaluationMethodType getEvaluationMethodType()
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.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`.

  - ### setEvaluationMethodType

    @Deprecated(since="1.3") public void setEvaluationMethodType(EvaluationMethodType newValue)
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.setEvaluationMethodType(EvaluationMethodType)`.
    Sets the type of method used to evaluate quality of the dataset.
    Parameters:
      `newValue` - the new evaluation method type.

  - ### getEvaluationMethodDescription

    @Deprecated(since="1.3") public InternationalString getEvaluationMethodDescription()
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.getEvaluationMethodDescription()`.
    Returns the description of the evaluation method.
    Specified by:
      `getEvaluationMethodDescription` in interface `Element`
    Returns:
      description of the evaluation method, or `null`.

  - ### setEvaluationMethodDescription

    @Deprecated(since="1.3") public void setEvaluationMethodDescription(InternationalString newValue)
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.setEvaluationMethodDescription(InternationalString)`.
    Sets the description of the evaluation method.
    Parameters:
      `newValue` - the new evaluation method description.

  - ### getEvaluationProcedure

    @Deprecated(since="1.3") public Citation getEvaluationProcedure()
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.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`.

  - ### setEvaluationProcedure

    @Deprecated(since="1.3") public void setEvaluationProcedure(Citation newValue)
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.setEvaluationProcedure(Citation)`.
    Sets the reference to the procedure information.
    Parameters:
      `newValue` - the new evaluation procedure.

  - ### getDates

    @Deprecated(since="1.3") public Collection<Date> getDates()
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.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

    @Deprecated(since="1.3") public void setDates(Collection<? extends Date> newValues)
    Deprecated.
    Replaced by `DefaultEvaluationMethod​.setDates(Collection)`.
    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(s) obtained from applying a data quality measure. May be an outcome 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(s) obtained from applying a data quality measure.
    Parameters:
      `newValues` - the new set of value.

  - ### getDerivedElements

    @UML(identifier="derivedElement", obligation=OPTIONAL, specification=UNSPECIFIED) public Collection<Element> getDerivedElements()
    Returns the original elements in case of aggregation or derivation.
    Returns:
      original element(s) when there is an aggregation or derivation.
    Since:
      1.3

  - ### setDerivedElements

    public void setDerivedElements(Collection<? extends Element> newValues)
    Sets the original elements in case of aggregation or derivation.
    Parameters:
      `newValues` - the new elements.
    Since:
      1.3

  - ### getStandard

    public MetadataStandard getStandard()
    Returns the metadata standard, which is ISO 19157.
    Overrides:
      `getStandard` in class `ISOMetadata`
    Returns:
      the metadata standard, which is ISO 19157.