diff src/main/java/edu/harvard/iq/dataverse/ForeignMetadataFieldMapping.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/ForeignMetadataFieldMapping.java	Tue Sep 08 17:00:21 2015 +0200
@@ -0,0 +1,160 @@
+
+
+package edu.harvard.iq.dataverse;
+
+import java.io.Serializable;
+import javax.persistence.*;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeMap;
+
+/**
+ *
+ * @author Leonid Andreev
+ */
+@Table(
+        uniqueConstraints = @UniqueConstraint(columnNames={"foreignMetadataFormatMapping_id","foreignFieldXpath"}) )
+@NamedQueries({
+  @NamedQuery( name="ForeignMetadataFieldMapping.findByPath",
+               query="SELECT fmfm FROM ForeignMetadataFieldMapping fmfm WHERE fmfm.foreignMetadataFormatMapping.name=:formatName AND fmfm.foreignFieldXPath=:xPath")  
+})
+@Entity
+public class ForeignMetadataFieldMapping implements Serializable {
+    private static final long serialVersionUID = 1L;
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+    
+    @ManyToOne(cascade = CascadeType.MERGE)
+    private ForeignMetadataFormatMapping foreignMetadataFormatMapping;
+
+    @Column(name = "foreignFieldXPath", columnDefinition = "TEXT")
+    private String foreignFieldXPath;
+    
+    @Column(name = "datasetfieldName", columnDefinition = "TEXT")
+    private String datasetfieldName;    
+
+    @OneToMany(mappedBy = "parentFieldMapping", cascade = {CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST})
+    private Collection<ForeignMetadataFieldMapping> childFieldMappings;
+        
+    @ManyToOne(cascade = CascadeType.MERGE)
+    private ForeignMetadataFieldMapping parentFieldMapping;
+    
+    private boolean isAttribute;
+    
+    /* getters/setters: */
+
+    public ForeignMetadataFormatMapping getForeignMetadataFormatMapping() {
+        return foreignMetadataFormatMapping;
+    }
+
+    public void setForeignMetadataFormatMapping(ForeignMetadataFormatMapping foreignMetadataFormatMapping) {
+        this.foreignMetadataFormatMapping = foreignMetadataFormatMapping;
+    }
+    
+    public String getForeignFieldXPath() {
+        return foreignFieldXPath;
+    }
+
+    public void setForeignFieldXPath(String foreignFieldXPath) {
+        this.foreignFieldXPath = foreignFieldXPath;
+    }
+    
+    public String getDatasetfieldName() {
+        return datasetfieldName;
+    }
+
+    public void setDatasetfieldName(String datasetfieldName) {
+        this.datasetfieldName = datasetfieldName;
+    }
+    
+    
+    public Collection<ForeignMetadataFieldMapping> getChildFieldMappings() {
+        return this.childFieldMappings;
+    }
+
+    public void setChildFieldMappings(Collection<ForeignMetadataFieldMapping> childFieldMappings) {
+        this.childFieldMappings = childFieldMappings;
+    }
+    
+    /*
+    public Collection<ForeignMetadataFieldMapping> getAttributeMappings() {
+        return this.attributeMappings;
+    }
+
+    public void setAttributeMappings(Collection<ForeignMetadataFieldMapping> attributeMappings) {
+        this.attributeMappings = attributeMappings;
+    }
+    */
+    
+    
+    public ForeignMetadataFieldMapping getParentFieldMapping() {
+        return parentFieldMapping;
+    }
+
+    public void setParentFieldMapping(ForeignMetadataFieldMapping parentFieldMapping) {
+        this.parentFieldMapping = parentFieldMapping;
+    }
+    
+    public boolean isAttribute() {
+        return isAttribute;
+    }
+
+    public void setIsAttribute(boolean isAttribute) {
+        this.isAttribute = isAttribute;
+    }
+    
+    /* logical: */
+    
+    public boolean isChild() {
+        return this.parentFieldMapping != null;        
+    }    
+    
+    public boolean HasChildren() {
+        return !this.childFieldMappings.isEmpty();
+    }
+    
+    /*
+    public boolean HasAttributes() {
+        return !this.attributeMappings.isEmpty();
+    }
+    */
+
+    public boolean HasParent() {
+        return this.parentFieldMapping != null;
+    }
+    /* overrides: */ 
+
+    @Override
+    public int hashCode() {
+        int hash = 0;
+        hash += (id != null ? id.hashCode() : 0);
+        return hash;
+    }
+
+    @Override
+    public boolean equals(Object object) {
+        if (!(object instanceof ForeignMetadataFieldMapping)) {
+            return false;
+        }
+        ForeignMetadataFieldMapping other = (ForeignMetadataFieldMapping) object;
+        return !((this.id == null && other.id != null) || (this.id != null && !this.id.equals(other.id)));
+    }
+
+    @Override
+    public String toString() {
+        return "edu.harvard.iq.dataverse.ForeignMetadataFieldMapping[ id=" + id + " ]";
+    }
+    
+}