Package org.ivoa.dm.caom2
Class ArtifactDescription
java.lang.Object
org.ivoa.dm.caom2.Entity
org.ivoa.dm.caom2.ArtifactDescription
- All Implemented Interfaces:
org.ivoa.vodml.jpa.JPAManipulations,org.ivoa.vodml.jpa.JPAManipulationsForObjectType<String>
@Entity
@VoDml(id="caom2:ArtifactDescription",
role=objectType)
public class ArtifactDescription
extends Entity
implements org.ivoa.vodml.jpa.JPAManipulationsForObjectType<String>
The provides a referenceable description of artitfacts for use in DataLink responses. (NEW in CAOM-2.5).
objectType: ArtifactDescription
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA builder class for ArtifactDescription, mainly for use in the functional builder pattern. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected StringA human-readable description of an artifact.protected StringThis is the logical identifier for this description used to refer to it from an artifact.Fields inherited from class org.ivoa.dm.caom2.Entity
id, lastModified, metaChecksum, metaProducer -
Constructor Summary
ConstructorsConstructorDescriptionCreates a new ArtifactDescriptionArtifactDescription(String uri, String description, String id, Date lastModified, String metaChecksum, String metaProducer) full parameter constructor.Copy Constructor.ArtifactDescription(Entity superinstance, String uri, String description) Constructor from supertype instance. -
Method Summary
Modifier and TypeMethodDescriptioncopyMe()make a clone of the object taking into account current polymorhic type.static ArtifactDescriptioncreate a ArtifactDescription in functional builder style.voiddelete(jakarta.persistence.EntityManager em) voidReturns description Attribute.getUri()Returns uri Attribute.voidsetDescription(String pDescription) Set description Attribute.voidSet uri Attribute.voidupdateUsing(ArtifactDescription other) Update this object with the content of the given object.withDescription(String pDescription) fluent setter for description Attribute.fluent setter for uri Attribute.Methods inherited from class org.ivoa.dm.caom2.Entity
getId, getLastModified, getMetaChecksum, getMetaProducer, setId, setLastModified, setMetaChecksum, setMetaProducer, updateUsing, withId, withLastModified, withMetaChecksum, withMetaProducerMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.ivoa.vodml.jpa.JPAManipulationsForObjectType
getId
-
Field Details
-
uri
@VoDml(id="caom2:ArtifactDescription.uri", role=attribute, type="ivoa:anyURI", typeRole=primitiveType) protected String uriThis is the logical identifier for this description used to refer to it from an artifact. Anticipated usage: this is an internal identifier that an IVOA DataLink service can use to lookup a description. TODO: There is an informal style used for Atifact.uri to make sure that these identifiers are globally unique and avoid collisions... : Attribute uri : multiplicity 1 -
description
@VoDml(id="caom2:ArtifactDescription.description", role=attribute, type="ivoa:string", typeRole=primitiveType) protected String descriptionA human-readable description of an artifact. : Attribute description : multiplicity 1
-
-
Constructor Details
-
ArtifactDescription
public ArtifactDescription()Creates a new ArtifactDescription -
ArtifactDescription
public ArtifactDescription(String uri, String description, String id, Date lastModified, String metaChecksum, String metaProducer) full parameter constructor.- Parameters:
uri- This is the logical identifier for this description used to refer to it from an artifact. Anticipated usage: this is an internal identifier that an IVOA DataLink service can use to lookup a description. TODO: There is an informal style used for Atifact.uri to make sure that these identifiers are globally unique and avoid collisions...description- A human-readable description of an artifact.id- The id is a globally unique identifier (primary key) for an instance.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- 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- 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.
-
ArtifactDescription
Copy Constructor. Note that references will remain as is rather than be copied.- Parameters:
other- the object to be copied.
-
ArtifactDescription
Constructor from supertype instance.- Parameters:
superinstance- The supertype.uri- This is the logical identifier for this description used to refer to it from an artifact. Anticipated usage: this is an internal identifier that an IVOA DataLink service can use to lookup a description. TODO: There is an informal style used for Atifact.uri to make sure that these identifiers are globally unique and avoid collisions...description- A human-readable description of an artifact.
-
-
Method Details
-
copyMe
make a clone of the object taking into account current polymorhic type. -
updateUsing
Update this object with the content of the given object. Note that references will remain as is rather than be copied.- Parameters:
other- the object to be copied.
-
getUri
Returns uri Attribute.- Returns:
- uri Attribute
-
setUri
Set uri Attribute.- Parameters:
pUri- value to set
-
withUri
fluent setter for uri Attribute.- Parameters:
pUri- value to set- Returns:
- ArtifactDescription
-
getDescription
Returns description Attribute.- Returns:
- description Attribute
-
setDescription
Set description Attribute.- Parameters:
pDescription- value to set
-
withDescription
fluent setter for description Attribute.- Parameters:
pDescription- value to set- Returns:
- ArtifactDescription
-
createArtifactDescription
public static ArtifactDescription createArtifactDescription(Consumer<ArtifactDescription.ArtifactDescriptionBuilder> f) create a ArtifactDescription in functional builder style.- Parameters:
f- the functional builder.- Returns:
- an object initialized from the builder.
-
forceLoad
public void forceLoad() -
delete
public void delete(jakarta.persistence.EntityManager em) - Specified by:
deletein interfaceorg.ivoa.vodml.jpa.JPAManipulationsForObjectType<String>
-