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 + " ]";
+    }
+    
+}
+