2020-03-20 17:20:22 +01:00
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 " ,
2020-03-26 17:39:25 +01:00
" type " ,
" additional_properties "
2020-03-20 17:20:22 +01:00
} )
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. " )
2020-06-03 11:13:31 +02:00
private Language language ;
2020-03-20 17:20:22 +01:00
/ * *
* 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 ;
2020-03-26 17:39:25 +01:00
@JsonProperty ( " additional_properties " )
2020-03-20 17:20:22 +01:00
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 " )
2020-06-03 11:13:31 +02:00
public Language getLanguage ( ) {
2020-03-20 17:20:22 +01:00
return language ;
}
/ * *
* The Dataset Language Schema
* < p >
* Language of the dataset expressed using ISO 639 - 3 .
*
* /
@JsonProperty ( " language " )
2020-06-03 11:13:31 +02:00
public void setLanguage ( Language language ) {
2020-03-20 17:20:22 +01:00
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 ;
}
2020-03-26 17:39:25 +01:00
@JsonProperty ( " additional_properties " )
2020-03-20 17:20:22 +01:00
public Map < String , Object > getAdditionalProperties ( ) {
return this . additionalProperties ;
}
2020-03-26 17:39:25 +01:00
@JsonProperty ( " additional_properties " )
2020-03-20 17:20:22 +01:00
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 ;
}
}
}
}