diff src/main/java/edu/harvard/iq/dataverse/DataTable.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/DataTable.java	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,209 @@
+/*
+ * 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 java.util.ArrayList;
+import java.util.List;
+import javax.persistence.CascadeType;
+import javax.persistence.Entity;
+import javax.persistence.GeneratedValue;
+import javax.persistence.GenerationType;
+import javax.persistence.Id;
+import javax.persistence.JoinColumn;
+import javax.persistence.ManyToOne;
+import javax.persistence.OneToMany;
+import javax.validation.constraints.Size;
+import javax.persistence.OrderBy;
+import org.hibernate.validator.constraints.NotBlank;
+import org.hibernate.validator.constraints.URL;
+
+import edu.harvard.iq.dataverse.datavariable.DataVariable;
+import java.util.Objects;
+import javax.persistence.Column;
+import javax.persistence.Index;
+import javax.persistence.Table;
+
+/**
+ *
+ * @author Leonid Andreev
+ * 
+ * Largely based on the the DataTable entity from the DVN v2-3;
+ * original author: Ellen Kraffmiller (2006).
+ * 
+ */
+
+@Entity
+@Table(indexes = {@Index(columnList="datafile_id")})
+public class DataTable implements Serializable {
+    
+    /** Creates a new instance of DataTable */
+    public DataTable() {
+    }
+    
+    private static final long serialVersionUID = 1L;
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+    
+    /**
+     * unf: the Universal Numeric Signature of the 
+     * data table.
+     */
+    @Column( nullable = false )
+    private String unf;
+    
+    /*
+     * caseQuantity: Number of observations
+     */    
+    private Long caseQuantity; 
+    
+    
+    /*
+     * varQuantity: Number of variables
+     */
+    private Long varQuantity;
+
+    /*
+     * recordsPerCase: this property is specific to fixed-field data files
+     * in which rows of observations may represented by *multiple* lines.
+     * The only known use case (so far): the fixed-width data files from 
+     * ICPSR. 
+     */
+     private Long recordsPerCase;
+     
+     /*
+      * DataFile that stores the data for this DataTable
+      */
+     @ManyToOne
+     @JoinColumn(nullable=false)
+     private DataFile dataFile;
+
+     /*
+      * DataVariables in this DataTable:
+     */
+    @OneToMany (mappedBy="dataTable", cascade={ CascadeType.REMOVE, CascadeType.MERGE,CascadeType.PERSIST})
+    @OrderBy ("fileOrder")
+    private List<DataVariable> dataVariables;
+    
+    /* 
+     * originalFileType: the format of the file from which this data table was
+     * extracted (STATA, SPSS, R, etc.)
+     * Note: this was previously stored in the StudyFile. 
+     */
+    private String originalFileFormat;
+    
+    /*
+     * originalFormatVersion: the version/release number of the original file
+     * format; for example, STATA 9, SPSS 12, etc. 
+     */
+    private String originalFormatVersion;
+    
+    /*
+     * Getter and Setter methods:
+     */
+    public Long getId() {
+        return this.id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getUnf() {
+        return this.unf;
+    }
+
+    public void setUnf(String unf) {
+        this.unf = unf;
+    }
+
+    public Long getCaseQuantity() {
+        return this.caseQuantity;
+    }    
+    
+    public void setCaseQuantity(Long caseQuantity) {
+        this.caseQuantity = caseQuantity;
+    }
+    
+    public Long getVarQuantity() {
+        return this.varQuantity;
+    }
+
+    public void setVarQuantity(Long varQuantity) {
+        this.varQuantity = varQuantity;
+    }   
+    
+    public Long getRecordsPerCase() {
+        return recordsPerCase;
+    }
+
+    public void setRecordsPerCase(Long recordsPerCase) {
+        this.recordsPerCase = recordsPerCase;
+    }
+    
+    public DataFile getDataFile() {
+        return this.dataFile;
+    }
+    
+    public void setDataFile(DataFile dataFile) {
+        this.dataFile = dataFile;
+    }
+
+     
+    public List<DataVariable> getDataVariables() {
+        return this.dataVariables;
+    }
+
+    
+    public void setDataVariables(List<DataVariable> dataVariables) {
+        this.dataVariables = dataVariables;
+    } 
+    
+    public String getOriginalFileFormat() {
+        return originalFileFormat;
+    }
+
+    public void setOriginalFileFormat(String originalFileType) {
+        this.originalFileFormat = originalFileType;
+    }
+
+    
+    public String getOriginalFormatVersion() {
+        return originalFormatVersion;
+    }
+
+    public void setOriginalFormatVersion(String originalFormatVersion) {
+        this.originalFormatVersion = originalFormatVersion;
+    }
+    
+    /* 
+     * Custom overrides for hashCode(), equals() and toString() methods:
+     */
+    
+    @Override
+    public int hashCode() {
+        int hash = 0;
+        hash += (this.id != null ? this.id.hashCode() : 0);
+        return hash;
+    }
+
+    @Override
+    public boolean equals(Object object) {
+        if (!(object instanceof DataTable)) {
+            return false;
+        }
+        DataTable other = (DataTable)object;
+        return !(!Objects.equals(this.id, other.id) && (this.id == null || !this.id.equals(other.id)));
+    }
+
+    @Override
+    public String toString() {
+        return "edu.harvard.iq.dataverse.DataTable[ id=" + id + " ]";
+    }
+    
+}