package org.gcube.informationsystem.types.reference.entities; import java.util.Set; import org.gcube.com.fasterxml.jackson.annotation.JsonIgnoreProperties; import org.gcube.com.fasterxml.jackson.databind.annotation.JsonDeserialize; import org.gcube.informationsystem.base.reference.AccessType; import org.gcube.informationsystem.types.annotations.ISProperty; import org.gcube.informationsystem.types.impl.entities.FacetTypeImpl; import org.gcube.informationsystem.types.reference.Change; import org.gcube.informationsystem.types.reference.Type; import org.gcube.informationsystem.types.reference.TypeMetadata; import org.gcube.informationsystem.types.reference.properties.PropertyDefinition; import org.gcube.informationsystem.utils.TypeVersion; /** * @author Luca Frosini (ISTI - CNR) */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonDeserialize(as = FacetTypeImpl.class) @TypeMetadata(name = FacetType.NAME, description = "This class provides information for the definition of any FacetType", version = TypeVersion.MINIMAL_VERSION_STRING) @Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION) public interface FacetType extends EntityType { public static final String NAME = "FacetType"; //FacetType.class.getSimpleName(); @ISProperty(name = Type.PROPERTIES_PROPERTY, readonly = false, mandatory = true, nullable = false) public Set getProperties(); @Override public default AccessType getAccessType() { return AccessType.FACET; } }