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 *

* * */ @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 *

* Data Quality Assurance * */ @JsonProperty("data_quality_assurance") @JsonPropertyDescription("Data Quality Assurance") private List dataQualityAssurance = null; /** * The Dataset ID Schema *

* Dataset ID * (Required) * */ @JsonProperty("dataset_id") @JsonPropertyDescription("Dataset ID") private DatasetId datasetId; /** * The Dataset Description Schema *

* 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 *

* 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 = null; /** * The Dataset Date of Issue Schema *

* Date of Issue * */ @JsonProperty("issued") @JsonPropertyDescription("Date of Issue") private String issued; /** * The Dataset Keyword(s) Schema *

* Keywords * */ @JsonProperty("keyword") @JsonPropertyDescription("Keywords") private List keyword = null; /** * The Dataset Language Schema *

* 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 *

* To describe metadata standards used. * */ @JsonProperty("metadata") @JsonPropertyDescription("To describe metadata standards used.") private List metadata = null; /** * The Dataset Personal Data Schema *

* 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 *

* Preservation Statement * */ @JsonProperty("preservation_statement") @JsonPropertyDescription("Preservation Statement") private String preservationStatement; /** * The Dataset Security and Policy Schema *

* 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 = null; /** * The Dataset Sensitive Data Schema *

* 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 *

* 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 = null; /** * The Dataset Title Schema *

* 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 *

* 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 additionalProperties = new HashMap(); private final static long serialVersionUID = -6931119120629009399L; /** * The Data Quality Assurance Schema *

* Data Quality Assurance * */ @JsonProperty("data_quality_assurance") public List getDataQualityAssurance() { return dataQualityAssurance; } /** * The Data Quality Assurance Schema *

* Data Quality Assurance * */ @JsonProperty("data_quality_assurance") public void setDataQualityAssurance(List dataQualityAssurance) { this.dataQualityAssurance = dataQualityAssurance; } /** * The Dataset ID Schema *

* Dataset ID * (Required) * */ @JsonProperty("dataset_id") public DatasetId getDatasetId() { return datasetId; } /** * The Dataset ID Schema *

* Dataset ID * (Required) * */ @JsonProperty("dataset_id") public void setDatasetId(DatasetId datasetId) { this.datasetId = datasetId; } /** * The Dataset Description Schema *

* 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 *

* 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 *

* To provide technical information on a specific instance of data. * */ @JsonProperty("distribution") public List getDistribution() { return distribution; } /** * The Dataset Distribution Schema *

* To provide technical information on a specific instance of data. * */ @JsonProperty("distribution") public void setDistribution(List distribution) { this.distribution = distribution; } /** * The Dataset Date of Issue Schema *

* Date of Issue * */ @JsonProperty("issued") public String getIssued() { return issued; } /** * The Dataset Date of Issue Schema *

* Date of Issue * */ @JsonProperty("issued") public void setIssued(String issued) { this.issued = issued; } /** * The Dataset Keyword(s) Schema *

* Keywords * */ @JsonProperty("keyword") public List getKeyword() { return keyword; } /** * The Dataset Keyword(s) Schema *

* Keywords * */ @JsonProperty("keyword") public void setKeyword(List keyword) { this.keyword = keyword; } /** * The Dataset Language Schema *

* Language of the dataset expressed using ISO 639-3. * */ @JsonProperty("language") public Language getLanguage() { return language; } /** * The Dataset Language Schema *

* Language of the dataset expressed using ISO 639-3. * */ @JsonProperty("language") public void setLanguage(Language language) { this.language = language; } /** * The Dataset Metadata Schema *

* To describe metadata standards used. * */ @JsonProperty("metadata") public List getMetadata() { return metadata; } /** * The Dataset Metadata Schema *

* To describe metadata standards used. * */ @JsonProperty("metadata") public void setMetadata(List metadata) { this.metadata = metadata; } /** * The Dataset Personal Data Schema *

* 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 *

* 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 *

* Preservation Statement * */ @JsonProperty("preservation_statement") public String getPreservationStatement() { return preservationStatement; } /** * The Dataset Preservation Statement Schema *

* Preservation Statement * */ @JsonProperty("preservation_statement") public void setPreservationStatement(String preservationStatement) { this.preservationStatement = preservationStatement; } /** * The Dataset Security and Policy Schema *

* To list all issues and requirements related to security and privacy * */ @JsonProperty("security_and_privacy") public List getSecurityAndPrivacy() { return securityAndPrivacy; } /** * The Dataset Security and Policy Schema *

* To list all issues and requirements related to security and privacy * */ @JsonProperty("security_and_privacy") public void setSecurityAndPrivacy(List securityAndPrivacy) { this.securityAndPrivacy = securityAndPrivacy; } /** * The Dataset Sensitive Data Schema *

* 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 *

* 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 *

* To list all technical resources needed to implement a DMP * */ @JsonProperty("technical_resource") public List getTechnicalResource() { return technicalResource; } /** * The Dataset Technical Resource Schema *

* To list all technical resources needed to implement a DMP * */ @JsonProperty("technical_resource") public void setTechnicalResource(List technicalResource) { this.technicalResource = technicalResource; } /** * The Dataset Title Schema *

* 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 *

* 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 *

* 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 *

* 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 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 CONSTANTS = new HashMap(); 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 CONSTANTS = new HashMap(); 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; } } } }