Class Plane.PlaneBuilder

java.lang.Object
org.ivoa.dm.caom2.Plane.PlaneBuilder
Enclosing class:
Plane

public static class Plane.PlaneBuilder extends Object
A builder class for Plane, mainly for use in the functional builder pattern.
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    accumulated checksum of the metadata of this entity and all child entities; The URI must conform to the pattern {algorithm}:{hex value}, for example: \begin{verbatim}md5:4be91751541fd804e7207663a0822f56.\end{verbatim} The accumulated checksum of an entity is computed by accumulating the byte representation of entity checksums in the following order: (1) the metaChecksum of the current entity, (2) the accMetaChecksum of all child entities accumulated in order of the child's Entity.id.
    This is the set of component artifacts belonging to this plane.
    This describes the degree to which the data is calibrated; it is equivalent to the ObsCore calibration level field.
    Information about the a single custom axis and sampling of the data.
    standard classification of the type of data product; describes the logical data type for the main artifacts.
    This is a set of groups with read permission on plane data for cases when the data is non-public (see dataRelease above).
    This timestamp specifies the point where the metadata for the plane instance is public (can be viewed by anonymous users).
    Information about the energy coverage and sampling of the data.
    The id is a globally unique identifier (primary key) for an instance.
    The timestamp of last modification of this entity tracks changes in metadata and supports incremental operations.
    The maximum last modification timestamp of this entity and all child entities is used to support incremental synchronization (of Observation instances).
    This checksum of the metadata in this entity signals a change in the metadata of an instance and supports validation (e.g.
    This identifier is used to identify the tools used to produce the metadata.
    This is a set of groups with read permission on plane metadata for cases when the metadata is non-public (see metaRelease above).
    This timestamp specifies the point where the metadata for the plane instance is public (can be viewed by anonymous users).
    Metrics are measured quantities that describe the content rather than the characteristics of the product.
    The observable describes the quantity stored in the sample (pixel) values.
    Information about the polarization state(s) of the data.
    Information about the positional coverage and sampling of the data.
    The provenance provides a description how the plane was created and the direct input planes that were used.
    This is a flag that indicates the quality of the data.
    Information about the time coverage and sampling of the data.
    A unique logical identifier for this plane.
    Information about the UV plane coverage and sampling of the data for interferometric observations.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    create a Plane from this builder.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • uri

      public String uri
      A unique logical identifier for this plane. Values of this identifier are used in Plane.provenance.inputs to form a reference from a product to it's progenitors. TODO: limit this to one of two forms that support use cases? (NEW in CAOM-2.5).
    • metaRelease

      public Date metaRelease
      This timestamp specifies the point where the metadata for the plane instance is public (can be viewed by anonymous users). A null value means the metadata is not public. The metaRelease timestamp applies to the plane metadata itself and to all artifacts with releaseType=meta.
    • metaReadGroups

      public List<String> metaReadGroups
      This is a set of groups with read permission on plane metadata for cases when the metadata is non-public (see metaRelease above).
    • dataRelease

      public Date dataRelease
      This timestamp specifies the point where the metadata for the plane instance is public (can be viewed by anonymous users). A null value means the metadata is not public. The dataRelease timestamp applies to all artifacts with releaseType=data.
    • dataReadGroups

      public List<String> dataReadGroups
      This is a set of groups with read permission on plane data for cases when the data is non-public (see dataRelease above).
    • calibrationLevel

      public CalibrationLevel calibrationLevel
      This describes the degree to which the data is calibrated; it is equivalent to the ObsCore calibration level field.
    • dataProductType

      public String dataProductType
      standard classification of the type of data product; describes the logical data type for the main artifacts.
    • observable

      public Observable observable
      The observable describes the quantity stored in the sample (pixel) values.
    • quality

      public DataQuality quality
      This is a flag that indicates the quality of the data. Existing usage is that this is only assigned when there is something wrong with the data and the quality flag indicates roughly what is wrong.
    • metrics

      public Metrics metrics
      Metrics are measured quantities that describe the content rather than the characteristics of the product.
    • position

      public Position position
      Information about the positional coverage and sampling of the data.
    • energy

      public Energy energy
      Information about the energy coverage and sampling of the data.
    • time

      public Time time
      Information about the time coverage and sampling of the data.
    • polarization

      public Polarization polarization
      Information about the polarization state(s) of the data.
    • custom

      public CustomAxis custom
      Information about the a single custom axis and sampling of the data. Since different custom coordinate types can be used with different planes, instances of CustomAxis can only be compared sensibly if they have the same coordinate type. Existing usage is experimental: Faraday Depth or Rotation Measure axes in radio data cubes.
    • uv

      public Visibility uv
      Information about the UV plane coverage and sampling of the data for interferometric observations.
    • provenance

      public Provenance provenance
      The provenance provides a description how the plane was created and the direct input planes that were used. This is a single-step provenance and not a complete description of all activities that led to this product.
    • artifacts

      public List<Artifact> artifacts
      This is the set of component artifacts belonging to this plane.
    • maxLastModified

      public Date maxLastModified
      The maximum last modification timestamp of this entity and all child entities is used to support incremental synchronization (of Observation instances). As with the instance lastModified timestamp above, this timestamp is intended to be set and/or updated when the entity is stored (e.g. in a database).
    • accMetaChecksum

      public String accMetaChecksum
      accumulated checksum of the metadata of this entity and all child entities; The URI must conform to the pattern {algorithm}:{hex value}, for example: \begin{verbatim}md5:4be91751541fd804e7207663a0822f56.\end{verbatim} The accumulated checksum of an entity is computed by accumulating the byte representation of entity checksums in the following order: (1) the metaChecksum of the current entity, (2) the accMetaChecksum of all child entities accumulated in order of the child's Entity.id. For an entity with no children, the accMetaChecksum is derived only from the metaChecksum but it is not equal to it because it is a checksum of that checksum and not a checksum of the same metadata directly.
    • id

      public String id
      The id is a globally unique identifier (primary key) for an instance.
    • lastModified

      public Date lastModified
      The timestamp of last modification of this entity tracks changes in metadata and supports incremental operations. The timestamp is intended to be set and/or updated when the entity is stored (e.g. in a database).
    • metaChecksum

      public String metaChecksum
      This checksum of the metadata in this entity signals a change in the metadata of an instance and supports validation (e.g. to compare metadata before and after serialisation or persistence). A change in the metaChecksum can also be used to optimise operations like updating a row in the database only when the metaChecksum changed. A change in metaChecksum normally triggers a change in the lastModified timestamp. The URI must conform to the pattern {algorithm}:{hex value}, for example: \begin{verbatim}md5:4be91751541fd804e7207663a0822f56.\end{verbatim} The checksum of an entity is computed by accumulating byte representation of individual metadata values in the following order: (1) Entity.id for entities, (2) Entity.metaProducer, (3) state fields in alphabetic order (foo.a comes before foo.b) and using depth-first recursion (foo.abc.x comes before foo.def). The lastModified timestamp is not included in the metaChecksum calculation. Null values are ignored so that the addition of new fields in future versions will not change/invalidate existing checksums. Non-null values are converted to bytes as follows: \begin{itemize} \item string: UTF-8 encoded bytes \item URI: UTF-8 encoded bytes of the string representation \item VocabularyTerm: UTF-8 encoded bytes of the term (do not include the namespace) \item enumeration: the literal value converted to bytes \item float: IEEE754 single (4 bytes) \item double: IEEE754 double (8 bytes) \item boolean: convert to single byte, false=0, true=1 (1 byte) \item byte: as-is (1 byte) \item short: (2 bytes, network byte order == big endian)) \item integer: (4 bytes, network byte order == big endian) \item long: (8 bytes, network byte order == big endian) \item date: treat as a long (milliseconds since 1970-01-01 00:00:00 UTC) \end{itemize} TODO: truncatedDates=false, digestFieldNames=true, digestFieldnamesLowerCase=true TODO: external data model components: recursion or specify conversion above (interval, point, shape, multishape) .
    • metaProducer

      public String metaProducer
      This identifier is used to identify the tools used to produce the metadata. It also implicitly applies to child entities with null metaProducer. The form of the URI is not specified; implementations are free to use this to track metadata curation. For example, a pattern like {organisation}:{software name}-{version} is useful to support a variety of operational uses: query for metadata created by a version with a known bug or query for metadata created by an older version of the software and perform updates.
  • Constructor Details

    • PlaneBuilder

      public PlaneBuilder()
  • Method Details

    • create

      public Plane create()
      create a Plane from this builder.
      Returns:
      an object initialized from the builder.