gcube-model/src/main/java/org/gcube/resourcemanagement/model/reference/entities/facets/LicenseFacet.java

60 lines
2.7 KiB
Java

/**
*
*/
package org.gcube.resourcemanagement.model.reference.entities.facets;
import java.net.URL;
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.LicenseFacetImpl;
/**
* LicenseFacet captures information on any license associated with the
* resource to capture the policies governing its exploitation and use.
*
* Example of use is the licence of a dataset e.g., Creative Commons Attribution (CC-BY)
* or the licence of software such as GPL.
* This facet is used to provide for human knowledge, but it is not excluded the usage
* by infrastructure services which enforces the respect of the licence e.g., a service which
* denies the usage of a dataset with Creative Commons Attribution No-Derivatives (CC-BY-ND)
* licence to produce a new dataset.
*
* https://wiki.gcube-system.org/gcube/GCube_Model#License_Facet
*
* @author Luca Frosini (ISTI - CNR)
*/
@JsonDeserialize(as=LicenseFacetImpl.class)
@TypeMetadata(
name = LicenseFacet.NAME,
description = "LicenseFacet captures information on any license associated with the resource to capture "
+ "the policies governing its exploitation and use. "
+ "Example of use is the licence of a dataset e.g., Creative Commons Attribution (CC-BY) "
+ "or the licence of software such as GPL. "
+ "This facet is used to provide for human knowledge, but it is not excluded the usage "
+ "by infrastructure services which enforces the respect of the licence e.g., a service which "
+ "denies the usage of a dataset with Creative Commons Attribution No-Derivatives (CC-BY-ND)"
+ "licence to produce a new dataset.",
version = TypeVersion.MINIMAL_VERSION_STRING
)
@Change(version = TypeVersion.MINIMAL_VERSION_STRING, description = TypeVersion.MINIMAL_VERSION_DESCRIPTION)
public interface LicenseFacet extends Facet {
public static final String NAME = "LicenseFacet"; // LicenseFacet.class.getSimpleName();
@ISProperty(description = "The common name of the license. e.g., European Union Public Licence (EUPL) 1.1, GNU General Public License (GPL) 2, Berkeley Software Distribution (BSD), Common Creative (CC).", mandatory=true, nullable=false)
public String getName();
public void setName(String name);
@ISProperty(description = "The URL to the actual text of the license.", mandatory=true, nullable=false)
public URL getTextURL();
public void setTextURL(URL textURL);
}