Class DerivedObservation.DerivedObservationBuilder

java.lang.Object
org.ivoa.dm.caom2.DerivedObservation.DerivedObservationBuilder
Enclosing class:
DerivedObservation

public static class DerivedObservation.DerivedObservationBuilder extends Object
A builder class for DerivedObservation, 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 provides information about the algorithm or process that created this observation.
    The name of the data collection to which this observation belongs.
    Information about the environmental conditions at the time of observation.
    The id is a globally unique identifier (primary key) for an instance.
    Information about the instrument or detector used to acquire the data.
    This is an enumeration that describes the intent of the original creator of the observation.
    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).
    The members are the observations grouped together by the algorithm that defines the derivation.
    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 observation metadata for cases when the metadata is non-public (see metaRelease above).
    This timestamp specifies the point where the metadata for the observation instance is public (can be viewed by anonymous users).
    The planes within an observation are the different data products that are produced from the observation.
    Information about the science proposal that motivated the creation of this observation.
    Information about the observational requirements specified by the observer or proposal and whether this observation satisfies those requirements.
    a collection-specific sequence number for observations; re-use or reset is collection specific.
    Information about the intended target of the observation.
    Information about the intended target position for this observation.
    Information about the telescope or facility where this observation was created.
    This describes the general purpose of observation (e.g.
    A unique logical identifier for this observation.
    This is a short string of hexadecimal digits generated from the uri to support operational use cases (mainly: dividing workload to perform validation in parallel).
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

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

    Methods inherited from class java.lang.Object

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

    • members

      public List<String> members
      The members are the observations grouped together by the algorithm that defines the derivation. these are the intended components of the composite product, but actual inputs are described by the provenance. Members may be simple or derived observations (arbitrary heirarchy); derived observations with one or more members may be defined such that they only include a subset of each member (they are extracted from the progenitor). Observation.uri values are used here to refer to the member observations.
    • collection

      public String collection
      The name of the data collection to which this observation belongs.
    • uri

      public String uri
      A unique logical identifier for this observation. (NEW in CAOM-2.5) TODO: limit this to one of two forms that support use cases?.
    • uriBucket

      public String uriBucket
      This is a short string of hexadecimal digits generated from the uri to support operational use cases (mainly: dividing workload to perform validation in parallel). The value is the first three characters of the hexadecimal representation of SHA-1 of the UTF-8 encoded bytes of the Observation.uri value. (NEW in CAOM-2.5).
    • metaRelease

      public Date metaRelease
      This timestamp specifies the point where the metadata for the observation instance is public (can be viewed by anonymous users). A null value means the metadata is nont public.
    • sequenceNumber

      public Integer sequenceNumber
      a collection-specific sequence number for observations; re-use or reset is collection specific.
    • type

      public String type
      This describes the general purpose of observation (e.g. FITS OBSTYPE keyword). Existing usage is usually OBJECT for intent = science and other values for intent = calibration.
    • intent

      public ObservationIntentType intent
      This is an enumeration that describes the intent of the original creator of the observation.
    • metaReadGroups

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

      public Algorithm algorithm
      This provides information about the algorithm or process that created this observation.
    • telescope

      public Telescope telescope
      Information about the telescope or facility where this observation was created.
    • instrument

      public Instrument instrument
      Information about the instrument or detector used to acquire the data.
    • environment

      public Environment environment
      Information about the environmental conditions at the time of observation.
    • proposal

      public Proposal proposal
      Information about the science proposal that motivated the creation of this observation.
    • target

      public Target target
      Information about the intended target of the observation.
    • targetPosition

      public TargetPosition targetPosition
      Information about the intended target position for this observation. This may differ from the coordinates of the target object itself.
    • requirements

      public Requirements requirements
      Information about the observational requirements specified by the observer or proposal and whether this observation satisfies those requirements.
    • planes

      public List<Plane> planes
      The planes within an observation are the different data products that are produced from the observation. For SimpleObservation, there are usually different planes for raw data, calibrated data, etc.
    • 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

    • DerivedObservationBuilder

      public DerivedObservationBuilder()
  • Method Details

    • create

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