# Class DefaultDataQuality

Object
AbstractMetadata
ModifiableMetadata
ISOMetadata
DefaultDataQuality

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

public class DefaultDataQuality extends ISOMetadata implements DataQuality
Quality information for the data specified by a data quality scope. The following properties are mandatory in a well-formed metadata according ISO 19157:
`DQ_DataQuality` `├─scope………………` The specific data to which the data quality information applies. `│ └─level……` Hierarchical level of the data specified by the scope. `└─report……………` Quantitative quality information for the data specified by the scope.

## 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
  `DefaultDataQuality()`
  Constructs an initially empty data quality.
  `DefaultDataQuality(ScopeCode level)`
  Creates a data quality initialized to the given scope level.
  `DefaultDataQuality(DataQuality object)`
  Constructs a new instance initialized with the values from the specified metadata object.
  `DefaultDataQuality(Scope scope)`
  Creates a data quality initialized to the given scope.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DefaultDataQuality`
  `castOrCopy(DataQuality object)`
  Returns a SIS metadata implementation with the values of the given arbitrary implementation.
  `Lineage`
  `getLineage()`
  Deprecated.
  Removed from ISO 19157:2013.
  `Collection<Element>`
  `getReports()`
  Returns the quality information for the data specified by the scope.
  `Scope`
  `getScope()`
  Returns the specific data to which the data quality information applies.
  `DefaultEvaluationReportInformation`
  `getStandaloneQualityReport()`
  Returns the reference to an external standalone quality report.
  `void`
  `setLineage(Lineage newValue)`
  Deprecated.
  Removed from ISO 19157:2013.
  `void`
  `setReports(Collection<? extends Element> newValues)`
  Sets the quality information for the data specified by the scope.
  `void`
  `setScope(Scope newValue)`
  Sets the specific data to which the data quality information applies.
  `void`
  `setStandaloneQualityReport(DefaultEvaluationReportInformation newValue)`
  Sets the quality of the reported information.

  ### Methods inherited from class ISOMetadata

  `getIdentifier, getIdentifierMap, getIdentifiers, getStandard, setIdentifier`

  ### Methods inherited from class ModifiableMetadata

  `checkWritePermission, 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

  - ### DefaultDataQuality

    public DefaultDataQuality()
    Constructs an initially empty data quality.

  - ### DefaultDataQuality

    public DefaultDataQuality(ScopeCode level)
    Creates a data quality initialized to the given scope level. The scope level is, indirectly, a mandatory property in well-formed metadata.
    Parameters:
      `level` - the hierarchical level of the data to which the quality information applies, or `null`.
    Since:
      0.5

  - ### DefaultDataQuality

    public DefaultDataQuality(Scope scope)
    Creates a data quality initialized to the given scope.
    Parameters:
      `scope` - the specific data to which the data quality information applies, or `null`.

  - ### DefaultDataQuality

    public DefaultDataQuality(DataQuality 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(DataQuality)`

- ## Method Details

  - ### castOrCopy

    public static DefaultDataQuality castOrCopy(DataQuality 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 already an instance of `DefaultDataQuality`, then it is returned unchanged.
    - Otherwise a new `DefaultDataQuality` 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.

  - ### getScope

    public Scope getScope()
    Returns the specific data to which the data quality information applies.
    Specified by:
      `getScope` in interface `DataQuality`
    Returns:
      the specific data to which the data quality information applies.

  - ### setScope

    public void setScope(Scope newValue)
    Sets the specific data to which the data quality information applies.
    Parameters:
      `newValue` - the new scope.

  - ### getReports

    public Collection<Element> getReports()
    Returns the quality information for the data specified by the scope.
    Specified by:
      `getReports` in interface `DataQuality`
    Returns:
      quality information for the data specified by the scope.

  - ### setReports

    public void setReports(Collection<? extends Element> newValues)
    Sets the quality information for the data specified by the scope.
    Parameters:
      `newValues` - the new reports.

  - ### getStandaloneQualityReport

    @UML(identifier="standaloneQualityReport", obligation=OPTIONAL, specification=UNSPECIFIED) public DefaultEvaluationReportInformation getStandaloneQualityReport()
    Returns the reference to an external standalone quality report. Can be used for providing more details than reported as standard metadata.
    Returns:
      reference to an external standalone quality report, or `null` if none.
    Since:
      1.3

  - ### setStandaloneQualityReport

    public void setStandaloneQualityReport(DefaultEvaluationReportInformation newValue)
    Sets the quality of the reported information.
    Parameters:
      `newValue` - the new quality information.
    Since:
      1.3

  - ### getLineage

    @Deprecated(since="1.3") public Lineage getLineage()
    Deprecated.
    Removed from ISO 19157:2013.
    Returns non-quantitative quality information about the lineage of the data specified by the scope.
    Specified by:
      `getLineage` in interface `DataQuality`
    Returns:
      non-quantitative quality information about the lineage of the data specified, or `null`.

  - ### setLineage

    @Deprecated(since="1.3") public void setLineage(Lineage newValue)
    Deprecated.
    Removed from ISO 19157:2013.
    Sets the non-quantitative quality information about the lineage of the data specified by the scope.
    Parameters:
      `newValue` - the new lineage.