/** * */ package org.gcube.resourcemanagement.model.reference.entities.facets; import java.util.UUID; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.informationsystem.model.reference.entities.Facet; import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.TypeMetadata; import org.gcube.informationsystem.utils.TypeVersion; import org.gcube.resourcemanagement.model.impl.entities.facets.ProvenanceFacetImpl; import org.gcube.resourcemanagement.model.reference.properties.ValueSchema; /** * ProvenanceFacet captures information on provenance/lineage of the entire resource. * It is mainly used to describe provenance information of a Dataset. * * https://wiki.gcube-system.org/gcube/GCube_Model#Provenance_Facet * * @author Luca Frosini (ISTI - CNR) */ @JsonDeserialize(as=ProvenanceFacetImpl.class) @TypeMetadata( name = ProvenanceFacet.NAME, description = "ProvenanceFacet captures information on provenance/lineage of the entire resource. " + "It is mainly used to describe provenance information of a Dataset.", version = TypeVersion.MINIMAL_VERSION_STRING ) @Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION) public interface ProvenanceFacet extends Facet { public static final String NAME = "ProvenanceFacet"; // ProvenanceFacet.class.getSimpleName(); public enum Relationship { wasDerivedFrom, wasGeneratedBy /* .... */ } @ISProperty(description = "Relationship with the resource indicated by UUID.") public Relationship getRelationship(); public void setRelationship(Relationship relationship); @ISProperty(description = "UUID of the referenced resource.") public UUID getReference(); public void setReference(UUID reference); @ISProperty(description = "Provenance Document, e.g., an XML according to the reference schema.") public ValueSchema getDocument(); public void setDocument(ValueSchema document); }