/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse;
import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToOne;
/**
*
*
* @author skraffmi
*/
@Entity
public class TermsOfUseAndAccess implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@OneToOne(mappedBy = "termsOfUseAndAccess")
private DatasetVersion datasetVersion;
public DatasetVersion getDatasetVersion() {
return datasetVersion;
}
public void setDatasetVersion(DatasetVersion datasetVersion) {
this.datasetVersion = datasetVersion;
}
@OneToOne(mappedBy = "termsOfUseAndAccess")
private Template template;
public Template getTemplate() {
return template;
}
public void setTemplate(Template template) {
this.template = template;
}
@Enumerated(EnumType.STRING)
private TermsOfUseAndAccess.License license;
@Column(columnDefinition="TEXT")
private String termsOfUse;
@Column(columnDefinition="TEXT")
private String termsOfAccess;
@Column(columnDefinition="TEXT")
private String confidentialityDeclaration;
@Column(columnDefinition="TEXT")
private String specialPermissions;
@Column(columnDefinition="TEXT")
private String restrictions;
@Column(columnDefinition="TEXT")
private String citationRequirements;
@Column(columnDefinition="TEXT")
private String depositorRequirements;
@Column(columnDefinition="TEXT")
private String conditions;
@Column(columnDefinition="TEXT")
private String disclaimer;
@Column(columnDefinition="TEXT")
private String dataAccessPlace;
@Column(columnDefinition="TEXT")
private String originalArchive;
@Column(columnDefinition="TEXT")
private String availabilityStatus;
@Column(columnDefinition="TEXT")
private String contactForAccess;
@Column(columnDefinition="TEXT")
private String sizeOfCollection;
@Column(columnDefinition="TEXT")
private String studyCompletion;
private boolean fileAccessRequest;
public boolean isFileAccessRequest() {
return fileAccessRequest;
}
public void setFileAccessRequest(boolean fileAccessRequest) {
this.fileAccessRequest = fileAccessRequest;
}
public TermsOfUseAndAccess.License getLicense() {
return license;
}
public void setLicense(TermsOfUseAndAccess.License license) {
this.license = license;
}
public String getTermsOfUse() {
return termsOfUse;
}
public void setTermsOfUse(String termsOfUse) {
this.termsOfUse = termsOfUse;
}
public String getTermsOfAccess() {
return termsOfAccess;
}
public void setTermsOfAccess(String termsOfAccess) {
this.termsOfAccess = termsOfAccess;
}
public String getConfidentialityDeclaration() {
return confidentialityDeclaration;
}
public void setConfidentialityDeclaration(String confidentialityDeclaration) {
this.confidentialityDeclaration = confidentialityDeclaration;
}
public String getSpecialPermissions() {
return specialPermissions;
}
public void setSpecialPermissions(String specialPermissions) {
this.specialPermissions = specialPermissions;
}
public String getRestrictions() {
return restrictions;
}
public void setRestrictions(String restrictions) {
this.restrictions = restrictions;
}
public String getCitationRequirements() {
return citationRequirements;
}
public void setCitationRequirements(String citationRequirements) {
this.citationRequirements = citationRequirements;
}
public String getDepositorRequirements() {
return depositorRequirements;
}
public void setDepositorRequirements(String depositorRequirements) {
this.depositorRequirements = depositorRequirements;
}
public String getConditions() {
return conditions;
}
public void setConditions(String conditions) {
this.conditions = conditions;
}
public String getDisclaimer() {
return disclaimer;
}
public void setDisclaimer(String disclaimer) {
this.disclaimer = disclaimer;
}
public String getDataAccessPlace() {
return dataAccessPlace;
}
public void setDataAccessPlace(String dataAccessPlace) {
this.dataAccessPlace = dataAccessPlace;
}
public String getOriginalArchive() {
return originalArchive;
}
public void setOriginalArchive(String originalArchive) {
this.originalArchive = originalArchive;
}
public String getAvailabilityStatus() {
return availabilityStatus;
}
public void setAvailabilityStatus(String availabilityStatus) {
this.availabilityStatus = availabilityStatus;
}
public String getContactForAccess() {
return contactForAccess;
}
public void setContactForAccess(String contactForAccess) {
this.contactForAccess = contactForAccess;
}
public String getSizeOfCollection() {
return sizeOfCollection;
}
public void setSizeOfCollection(String sizeOfCollection) {
this.sizeOfCollection = sizeOfCollection;
}
public String getStudyCompletion() {
return studyCompletion;
}
public void setStudyCompletion(String studyCompletion) {
this.studyCompletion = studyCompletion;
}
public TermsOfUseAndAccess copyTermsOfUseAndAccess(){
TermsOfUseAndAccess retVal = new TermsOfUseAndAccess();
retVal.setAvailabilityStatus(this.getAvailabilityStatus());
retVal.setCitationRequirements(this.getCitationRequirements());
retVal.setConditions(this.getConditions());
retVal.setConfidentialityDeclaration(this.getConfidentialityDeclaration());
retVal.setContactForAccess(this.getContactForAccess());
retVal.setDataAccessPlace(this.getDataAccessPlace());
retVal.setDepositorRequirements(this.getDepositorRequirements());
retVal.setDisclaimer(this.getDisclaimer());
retVal.setLicense(this.getLicense());
retVal.setOriginalArchive(this.getOriginalArchive());
retVal.setRestrictions(this.getRestrictions());
retVal.setSizeOfCollection(this.getSizeOfCollection());
retVal.setSpecialPermissions(this.getSpecialPermissions());
retVal.setStudyCompletion(this.getStudyCompletion());
retVal.setTermsOfAccess(this.getTermsOfAccess());
retVal.setTermsOfUse(this.getTermsOfUse());
retVal.setFileAccessRequest(this.isFileAccessRequest());
return retVal;
}
public enum License {
NONE, CC0
}
/**
* @todo What does the GUI use for a default license? What does the "native"
* API use? See also https://github.com/IQSS/dataverse/issues/1385
*/
public static TermsOfUseAndAccess.License defaultLicense = TermsOfUseAndAccess.License.CC0;
@Override
public int hashCode() {
int hash = 0;
hash += (id != null ? id.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof TermsOfUseAndAccess)) {
return false;
}
TermsOfUseAndAccess other = (TermsOfUseAndAccess) object;
if ((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id))) {
return false;
}
return true;
}
@Override
public String toString() {
return "edu.harvard.iq.dataverse.TermsOfUseAndAccess[ id=" + id + " ]";
}
}