/** * */ package org.gcube.resourcemanagement.model.reference.entities.facets; import java.util.Map; 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.utils.TypeVersion; import org.gcube.resourcemanagement.model.impl.entities.facets.IdentifierFacetImpl; /** * @author Luca Frosini (ISTI - CNR) * https://wiki.gcube-system.org/gcube/Facet_Based_Resource_Model#Identifier_Facet * * Changelog (only model changes are logged here. Not implementation details) * * - 1.0.1 Added STRING in IdentificationType * OrientDB Schema requires this changes * - ALTER PROPERTY IdentifierFacet.type REGEXP '^(URI|DOI|IRI|URL|URN|UUID|STRING)$' * - UPDATE FacetType SET properties=.... WHERE name='IdentifierFacet' * - 1.0.0 First version * */ @JsonDeserialize(as=IdentifierFacetImpl.class) public interface IdentifierFacet extends Facet { public static final String NAME = "IdentifierFacet"; // IdentifierFacet.class.getSimpleName(); public static final String DESCRIPTION = "This facet collects " + "information on Identifiers that can be attached to a resource. "; public static final String VERSION = "1.0.1"; public static final Map CHANGELOG = IdentifierFacetImpl.CHANGELOG; public static final String VALUE_PROPERTY = "value"; public static final String TYPE_PROPERTY = "type"; public enum IdentificationType { URI, DOI, IRI, URL, URN, UUID, STRING } @ISProperty(name=VALUE_PROPERTY, mandatory=true, nullable=false) public String getValue(); public void setValue(String value); @ISProperty(name=TYPE_PROPERTY, mandatory=true, nullable=false) public IdentificationType getType(); public void setType(IdentificationType type); @ISProperty public boolean isPersistent(); public void setPersistent(boolean persistent); }