Mercurial > hg > LGDataverses
diff src/main/java/edu/harvard/iq/dataverse/GuestbookResponse.java @ 10:a50cf11e5178
Rewrite LGDataverse completely upgrading to dataverse4.0
| author | Zoe Hong <zhong@mpiwg-berlin.mpg.de> |
|---|---|
| date | Tue, 08 Sep 2015 17:00:21 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/java/edu/harvard/iq/dataverse/GuestbookResponse.java Tue Sep 08 17:00:21 2015 +0200 @@ -0,0 +1,241 @@ +/* + * 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 edu.harvard.iq.dataverse.authorization.users.AuthenticatedUser; +import java.io.Serializable; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import javax.persistence.*; + +/** + * + * @author skraffmiller + */ +@Entity +@Table(indexes = { + @Index(columnList = "guestbook_id"), + @Index(columnList = "datafile_id"), + @Index(columnList = "dataset_id") +}) +public class GuestbookResponse implements Serializable { + private static final long serialVersionUID = 1L; + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + @ManyToOne + @JoinColumn(nullable=false) + private Guestbook guestbook; + + @ManyToOne + @JoinColumn(nullable=false) + private DataFile dataFile; + + @ManyToOne + @JoinColumn(nullable=false) + private Dataset dataset; + + @ManyToOne + @JoinColumn(nullable=true) + private DatasetVersion datasetVersion; + + @ManyToOne + @JoinColumn(nullable=true) + private AuthenticatedUser authenticatedUser; + + @OneToMany(mappedBy="guestbookResponse",cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST},orphanRemoval=true) + @OrderBy ("id") + private List<CustomQuestionResponse> customQuestionResponses; + + + private String name; + private String email; + private String institution; + private String position; + private String downloadtype; + private String sessionId; + + @Temporal(value = TemporalType.TIMESTAMP) + private Date responseTime; + + public GuestbookResponse(){ + + } + + public GuestbookResponse(GuestbookResponse source){ + //makes a clone of a response for adding of studyfiles in case of multiple downloads + this.setName(source.getName()); + this.setEmail(source.getEmail()); + this.setInstitution(source.getInstitution()); + this.setPosition(source.getPosition()); + this.setResponseTime(source.getResponseTime()); + this.setDataset(source.getDataset()); + this.setDatasetVersion(source.getDatasetVersion()); + this.setAuthenticatedUser(source.getAuthenticatedUser()); + this.setSessionId(source.getSessionId()); + List <CustomQuestionResponse> customQuestionResponses = new ArrayList(); + if (!source.getCustomQuestionResponses().isEmpty()){ + for (CustomQuestionResponse customQuestionResponse : source.getCustomQuestionResponses() ){ + CustomQuestionResponse customQuestionResponseAdd = new CustomQuestionResponse(); + customQuestionResponseAdd.setResponse(customQuestionResponse.getResponse()); + customQuestionResponseAdd.setCustomQuestion(customQuestionResponse.getCustomQuestion()); + customQuestionResponseAdd.setGuestbookResponse(this); + customQuestionResponses.add(customQuestionResponseAdd); + } + } + this.setCustomQuestionResponses(customQuestionResponses); + this.setGuestbook(source.getGuestbook()); + } + + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Guestbook getGuestbook() { + return guestbook; + } + + public void setGuestbook(Guestbook guestbook) { + this.guestbook = guestbook; + } + + public String getInstitution() { + return institution; + } + + public void setInstitution(String institution) { + this.institution = institution; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getPosition() { + return position; + } + + public void setPosition(String position) { + this.position = position; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Date getResponseTime() { + return responseTime; + } + + public void setResponseTime(Date responseTime) { + this.responseTime = responseTime; + } + + public String getResponseDateForDisplay(){ + return null; // SimpleDateFormat("yyyy").format(new Timestamp(new Date().getTime())); + } + + + public List<CustomQuestionResponse> getCustomQuestionResponses() { + return customQuestionResponses; + } + + public void setCustomQuestionResponses(List<CustomQuestionResponse> customQuestionResponses) { + this.customQuestionResponses = customQuestionResponses; + } + + public Dataset getDataset() { + return dataset; + } + + public void setDataset(Dataset dataset) { + this.dataset = dataset; + } + + public DataFile getDataFile() { + return dataFile; + } + + public void setDataFile(DataFile dataFile) { + this.dataFile = dataFile; + } + + public DatasetVersion getDatasetVersion() { + return datasetVersion; + } + + public void setDatasetVersion(DatasetVersion datasetVersion) { + this.datasetVersion = datasetVersion; + } + + public AuthenticatedUser getAuthenticatedUser() { + return authenticatedUser; + } + + public void setAuthenticatedUser(AuthenticatedUser authenticatedUser) { + this.authenticatedUser = authenticatedUser; + } + + public String getDownloadtype() { + return downloadtype; + } + + public void setDownloadtype(String downloadtype) { + this.downloadtype = downloadtype; + } + + public String getSessionId() { + return sessionId; + } + + public void setSessionId(String sessionId) { + this.sessionId = sessionId; + } + + @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 GuestbookResponse)) { + return false; + } + GuestbookResponse other = (GuestbookResponse) 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.dvn.core.vdc.GuestBookResponse[ id=" + id + " ]"; + } + +} +
