613 lines
17 KiB
Java
613 lines
17 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.*;
|
|
|
|
|
|
/**
|
|
* 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"
|
|
})
|
|
@JsonIgnoreProperties(ignoreUnknown = true)
|
|
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;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|