argos/dmp-backend/web/src/main/java/eu/eudat/models/rda/Dataset.java

619 lines
18 KiB
Java

package eu.eudat.models.rda;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
import com.fasterxml.jackson.annotation.JsonAnySetter;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonPropertyDescription;
import com.fasterxml.jackson.annotation.JsonPropertyOrder;
import com.fasterxml.jackson.annotation.JsonValue;
/**
* The Dataset Items Schema
* <p>
*
*
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonPropertyOrder({
"data_quality_assurance",
"dataset_id",
"description",
"distribution",
"issued",
"keyword",
"language",
"metadata",
"personal_data",
"preservation_statement",
"security_and_privacy",
"sensitive_data",
"technical_resource",
"title",
"type",
"additional_properties"
})
public class Dataset implements Serializable
{
/**
* The Data Quality Assurance Schema
* <p>
* Data Quality Assurance
*
*/
@JsonProperty("data_quality_assurance")
@JsonPropertyDescription("Data Quality Assurance")
private List<String> dataQualityAssurance = null;
/**
* The Dataset ID Schema
* <p>
* Dataset ID
* (Required)
*
*/
@JsonProperty("dataset_id")
@JsonPropertyDescription("Dataset ID")
private DatasetId datasetId;
/**
* The Dataset Description Schema
* <p>
* Description is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
*
*/
@JsonProperty("description")
@JsonPropertyDescription("Description is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.")
private String description;
/**
* The Dataset Distribution Schema
* <p>
* To provide technical information on a specific instance of data.
*
*/
@JsonProperty("distribution")
@JsonPropertyDescription("To provide technical information on a specific instance of data.")
private List<Distribution> distribution = null;
/**
* The Dataset Date of Issue Schema
* <p>
* Date of Issue
*
*/
@JsonProperty("issued")
@JsonPropertyDescription("Date of Issue")
private String issued;
/**
* The Dataset Keyword(s) Schema
* <p>
* Keywords
*
*/
@JsonProperty("keyword")
@JsonPropertyDescription("Keywords")
private List<String> keyword = null;
/**
* The Dataset Language Schema
* <p>
* Language of the dataset expressed using ISO 639-3.
*
*/
@JsonProperty("language")
@JsonPropertyDescription("Language of the dataset expressed using ISO 639-3.")
private Language language;
/**
* The Dataset Metadata Schema
* <p>
* To describe metadata standards used.
*
*/
@JsonProperty("metadata")
@JsonPropertyDescription("To describe metadata standards used.")
private List<Metadatum> metadata = null;
/**
* The Dataset Personal Data Schema
* <p>
* If any personal data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("personal_data")
@JsonPropertyDescription("If any personal data is contained. Allowed values: yes, no, unknown")
private Dataset.PersonalData personalData;
/**
* The Dataset Preservation Statement Schema
* <p>
* Preservation Statement
*
*/
@JsonProperty("preservation_statement")
@JsonPropertyDescription("Preservation Statement")
private String preservationStatement;
/**
* The Dataset Security and Policy Schema
* <p>
* To list all issues and requirements related to security and privacy
*
*/
@JsonProperty("security_and_privacy")
@JsonPropertyDescription("To list all issues and requirements related to security and privacy")
private List<SecurityAndPrivacy> securityAndPrivacy = null;
/**
* The Dataset Sensitive Data Schema
* <p>
* If any sensitive data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("sensitive_data")
@JsonPropertyDescription("If any sensitive data is contained. Allowed values: yes, no, unknown")
private Dataset.SensitiveData sensitiveData;
/**
* The Dataset Technical Resource Schema
* <p>
* To list all technical resources needed to implement a DMP
*
*/
@JsonProperty("technical_resource")
@JsonPropertyDescription("To list all technical resources needed to implement a DMP")
private List<TechnicalResource> technicalResource = null;
/**
* The Dataset Title Schema
* <p>
* Title is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
* (Required)
*
*/
@JsonProperty("title")
@JsonPropertyDescription("Title is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.")
private String title;
/**
* The Dataset Type Schema
* <p>
* If appropriate, type according to: DataCite and/or COAR dictionary. Otherwise use the common name for the type, e.g. raw data, software, survey, etc. https://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf http://vocabularies.coar-repositories.org/pubby/resource_type.html
*
*/
@JsonProperty("type")
@JsonPropertyDescription("If appropriate, type according to: DataCite and/or COAR dictionary. Otherwise use the common name for the type, e.g. raw data, software, survey, etc. https://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf http://vocabularies.coar-repositories.org/pubby/resource_type.html")
private String type;
@JsonProperty("additional_properties")
private Map<String, Object> additionalProperties = new HashMap<String, Object>();
private final static long serialVersionUID = -6931119120629009399L;
/**
* The Data Quality Assurance Schema
* <p>
* Data Quality Assurance
*
*/
@JsonProperty("data_quality_assurance")
public List<String> getDataQualityAssurance() {
return dataQualityAssurance;
}
/**
* The Data Quality Assurance Schema
* <p>
* Data Quality Assurance
*
*/
@JsonProperty("data_quality_assurance")
public void setDataQualityAssurance(List<String> dataQualityAssurance) {
this.dataQualityAssurance = dataQualityAssurance;
}
/**
* The Dataset ID Schema
* <p>
* Dataset ID
* (Required)
*
*/
@JsonProperty("dataset_id")
public DatasetId getDatasetId() {
return datasetId;
}
/**
* The Dataset ID Schema
* <p>
* Dataset ID
* (Required)
*
*/
@JsonProperty("dataset_id")
public void setDatasetId(DatasetId datasetId) {
this.datasetId = datasetId;
}
/**
* The Dataset Description Schema
* <p>
* Description is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
*
*/
@JsonProperty("description")
public String getDescription() {
return description;
}
/**
* The Dataset Description Schema
* <p>
* Description is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
*
*/
@JsonProperty("description")
public void setDescription(String description) {
this.description = description;
}
/**
* The Dataset Distribution Schema
* <p>
* To provide technical information on a specific instance of data.
*
*/
@JsonProperty("distribution")
public List<Distribution> getDistribution() {
return distribution;
}
/**
* The Dataset Distribution Schema
* <p>
* To provide technical information on a specific instance of data.
*
*/
@JsonProperty("distribution")
public void setDistribution(List<Distribution> distribution) {
this.distribution = distribution;
}
/**
* The Dataset Date of Issue Schema
* <p>
* Date of Issue
*
*/
@JsonProperty("issued")
public String getIssued() {
return issued;
}
/**
* The Dataset Date of Issue Schema
* <p>
* Date of Issue
*
*/
@JsonProperty("issued")
public void setIssued(String issued) {
this.issued = issued;
}
/**
* The Dataset Keyword(s) Schema
* <p>
* Keywords
*
*/
@JsonProperty("keyword")
public List<String> getKeyword() {
return keyword;
}
/**
* The Dataset Keyword(s) Schema
* <p>
* Keywords
*
*/
@JsonProperty("keyword")
public void setKeyword(List<String> keyword) {
this.keyword = keyword;
}
/**
* The Dataset Language Schema
* <p>
* Language of the dataset expressed using ISO 639-3.
*
*/
@JsonProperty("language")
public Language getLanguage() {
return language;
}
/**
* The Dataset Language Schema
* <p>
* Language of the dataset expressed using ISO 639-3.
*
*/
@JsonProperty("language")
public void setLanguage(Language language) {
this.language = language;
}
/**
* The Dataset Metadata Schema
* <p>
* To describe metadata standards used.
*
*/
@JsonProperty("metadata")
public List<Metadatum> getMetadata() {
return metadata;
}
/**
* The Dataset Metadata Schema
* <p>
* To describe metadata standards used.
*
*/
@JsonProperty("metadata")
public void setMetadata(List<Metadatum> metadata) {
this.metadata = metadata;
}
/**
* The Dataset Personal Data Schema
* <p>
* If any personal data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("personal_data")
public Dataset.PersonalData getPersonalData() {
return personalData;
}
/**
* The Dataset Personal Data Schema
* <p>
* If any personal data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("personal_data")
public void setPersonalData(Dataset.PersonalData personalData) {
this.personalData = personalData;
}
/**
* The Dataset Preservation Statement Schema
* <p>
* Preservation Statement
*
*/
@JsonProperty("preservation_statement")
public String getPreservationStatement() {
return preservationStatement;
}
/**
* The Dataset Preservation Statement Schema
* <p>
* Preservation Statement
*
*/
@JsonProperty("preservation_statement")
public void setPreservationStatement(String preservationStatement) {
this.preservationStatement = preservationStatement;
}
/**
* The Dataset Security and Policy Schema
* <p>
* To list all issues and requirements related to security and privacy
*
*/
@JsonProperty("security_and_privacy")
public List<SecurityAndPrivacy> getSecurityAndPrivacy() {
return securityAndPrivacy;
}
/**
* The Dataset Security and Policy Schema
* <p>
* To list all issues and requirements related to security and privacy
*
*/
@JsonProperty("security_and_privacy")
public void setSecurityAndPrivacy(List<SecurityAndPrivacy> securityAndPrivacy) {
this.securityAndPrivacy = securityAndPrivacy;
}
/**
* The Dataset Sensitive Data Schema
* <p>
* If any sensitive data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("sensitive_data")
public Dataset.SensitiveData getSensitiveData() {
return sensitiveData;
}
/**
* The Dataset Sensitive Data Schema
* <p>
* If any sensitive data is contained. Allowed values: yes, no, unknown
* (Required)
*
*/
@JsonProperty("sensitive_data")
public void setSensitiveData(Dataset.SensitiveData sensitiveData) {
this.sensitiveData = sensitiveData;
}
/**
* The Dataset Technical Resource Schema
* <p>
* To list all technical resources needed to implement a DMP
*
*/
@JsonProperty("technical_resource")
public List<TechnicalResource> getTechnicalResource() {
return technicalResource;
}
/**
* The Dataset Technical Resource Schema
* <p>
* To list all technical resources needed to implement a DMP
*
*/
@JsonProperty("technical_resource")
public void setTechnicalResource(List<TechnicalResource> technicalResource) {
this.technicalResource = technicalResource;
}
/**
* The Dataset Title Schema
* <p>
* Title is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
* (Required)
*
*/
@JsonProperty("title")
public String getTitle() {
return title;
}
/**
* The Dataset Title Schema
* <p>
* Title is a property in both Dataset and Distribution, in compliance with W3C DCAT. In some cases these might be identical, but in most cases the Dataset represents a more abstract concept, while the distribution can point to a specific file.
* (Required)
*
*/
@JsonProperty("title")
public void setTitle(String title) {
this.title = title;
}
/**
* The Dataset Type Schema
* <p>
* If appropriate, type according to: DataCite and/or COAR dictionary. Otherwise use the common name for the type, e.g. raw data, software, survey, etc. https://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf http://vocabularies.coar-repositories.org/pubby/resource_type.html
*
*/
@JsonProperty("type")
public String getType() {
return type;
}
/**
* The Dataset Type Schema
* <p>
* If appropriate, type according to: DataCite and/or COAR dictionary. Otherwise use the common name for the type, e.g. raw data, software, survey, etc. https://schema.datacite.org/meta/kernel-4.1/doc/DataCite-MetadataKernel_v4.1.pdf http://vocabularies.coar-repositories.org/pubby/resource_type.html
*
*/
@JsonProperty("type")
public void setType(String type) {
this.type = type;
}
@JsonProperty("additional_properties")
public Map<String, Object> getAdditionalProperties() {
return this.additionalProperties;
}
@JsonProperty("additional_properties")
public void setAdditionalProperty(String name, Object value) {
this.additionalProperties.put(name, value);
}
public enum PersonalData {
YES("yes"),
NO("no"),
UNKNOWN("unknown");
private final String value;
private final static Map<String, Dataset.PersonalData> CONSTANTS = new HashMap<String, Dataset.PersonalData>();
static {
for (Dataset.PersonalData c: values()) {
CONSTANTS.put(c.value, c);
}
}
private PersonalData(String value) {
this.value = value;
}
@Override
public String toString() {
return this.value;
}
@JsonValue
public String value() {
return this.value;
}
@JsonCreator
public static Dataset.PersonalData fromValue(String value) {
Dataset.PersonalData constant = CONSTANTS.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}
}
public enum SensitiveData {
YES("yes"),
NO("no"),
UNKNOWN("unknown");
private final String value;
private final static Map<String, Dataset.SensitiveData> CONSTANTS = new HashMap<String, Dataset.SensitiveData>();
static {
for (Dataset.SensitiveData c: values()) {
CONSTANTS.put(c.value, c);
}
}
private SensitiveData(String value) {
this.value = value;
}
@Override
public String toString() {
return this.value;
}
@JsonValue
public String value() {
return this.value;
}
@JsonCreator
public static Dataset.SensitiveData fromValue(String value) {
Dataset.SensitiveData constant = CONSTANTS.get(value);
if (constant == null) {
throw new IllegalArgumentException(value);
} else {
return constant;
}
}
}
}