/* * 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.CascadeType; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Index; import javax.persistence.JoinColumn; import javax.persistence.OneToOne; import javax.persistence.Table; /** * * @author Leonid Andreev */ @Entity @Table(indexes = {@Index(columnList="dataverse_id") , @Index(columnList="harvesttype") , @Index(columnList="harveststyle") , @Index(columnList="harvestingurl")}) public class HarvestingDataverseConfig implements Serializable { private static final long serialVersionUID = 1L; @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public static final String HARVEST_TYPE_OAI="oai"; public static final String HARVEST_TYPE_NESSTAR="nesstar"; public static final String HARVEST_STYLE_DATAVERSE="dataverse"; // pre-4.0 remote Dataverse: public static final String HARVEST_STYLE_VDC="vdc"; public static final String HARVEST_STYLE_ICPSR="icpsr"; public static final String HARVEST_STYLE_NESSTAR="nesstar"; public static final String HARVEST_STYLE_ROPER="roper"; public static final String HARVEST_STYLE_HGL="hgl"; public static final String HARVEST_STYLE_DEFAULT="default"; public static final String REMOTE_ARCHIVE_URL_LEVEL_DATAVERSE="dataverse"; public static final String REMOTE_ARCHIVE_URL_LEVEL_DATASET="dataset"; public static final String REMOTE_ARCHIVE_URL_LEVEL_FILE="file"; public HarvestingDataverseConfig() { this.harvestType = HARVEST_TYPE_OAI; // default harvestType this.harvestStyle = HARVEST_STYLE_DATAVERSE; // default harvestStyle } @OneToOne (cascade={CascadeType.REMOVE, CascadeType.MERGE, CascadeType.PERSIST }) @JoinColumn(name="dataverse_id") private Dataverse dataverse; public Dataverse getDataverse() { return this.dataverse; } public void setDataverse(Dataverse dataverse) { this.dataverse = dataverse; } String harvestType; public String getHarvestType() { return harvestType; } public void setHarvestType(String harvestType) { this.harvestType = harvestType; } String harvestStyle; public String getHarvestStyle() { return harvestStyle; } public void setHarvestStyle(String harvestStyle) { this.harvestStyle = harvestStyle; } private String harvestingUrl; public String getHarvestingUrl() { return this.harvestingUrl; } public void setHarvestingUrl(String harvestingUrl) { this.harvestingUrl = harvestingUrl.trim(); } private String archiveUrl; public String getArchiveUrl() { return this.archiveUrl; } public void setArchiveUrl(String archiveUrl) { this.archiveUrl = archiveUrl; } @Column(columnDefinition="TEXT") private String archiveDescription; public String getArchiveDescription() { return this.archiveDescription; } public void setArchiveDescription(String archiveDescription) { this.archiveDescription = archiveDescription; } private String harvestingSet; public String getHarvestingSet() { return this.harvestingSet; } public void setHarvestingSet(String harvestingSet) { this.harvestingSet = harvestingSet; } @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 HarvestingDataverseConfig)) { return false; } HarvestingDataverseConfig other = (HarvestingDataverseConfig) 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.HarvestingDataverse[ id=" + id + " ]"; } }