view src/main/java/de/mpiwg/gazetteer/bo/LGFile.java @ 48:13555aff1f88

new: multiple full text searching. topics and tasks improvement.
author Zoe Hong <zhong@mpiwg-berlin.mpg.de>
date Thu, 21 Jan 2016 11:56:30 +0100
parents 2e1662afc81c
children
line wrap: on
line source

package de.mpiwg.gazetteer.bo;

import java.io.IOException;
import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.Table;
import javax.persistence.Transient;

import cl.maps.duplex.DuplexKey;
import de.mpiwg.gazetteer.dataverse.DataverseUtils;
import de.mpiwg.gazetteer.utils.PropertiesUtils;


@Entity
@Table(name="File")
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public class LGFile extends DBEntry implements Cloneable, Serializable, Comparable<LGFile> {
	
	private static final long serialVersionUID = 1638482732212457961L;

	//many files can have the same fileId
	@Column(name="branchId")
	private Long branchId;
	
	//if this file has been exported to DV, here is saved the id (for dataset)
	@Column(name="dvId")
	private Long dvId;
	
	@Column(name="version")
	private Integer version = 0;
	
	@Column(name="fileName")
	private String fileName;

	@Column(name="userId")
	private Long userId;
	
	@Column(name="lastVersion")
	private boolean lastVersion = true;
	
	
	@Column(name="notes")
	private String notes;
	
	@Transient
	private String content;
	
	// if the file has been exported to LGDataverse, here is the datasetTitle
	@Column(name="datasetTitle")
	private String datasetTitle;
	
	// if the file has been exported to LGDataverse, here is the datasetGlobalId, which is a string
	@Column(name="datasetPersistentId")
	private String datasetPersistentId;

	// if the file has been exported to LGDataverse, here is the fileId in LGDataverse; 
	// if it's null, means it hasn't been exported or has been deleted in LGDataverse.
	@Column(name="fileIdInDv")
	private Long fileIdInDv;
	
	
	public String getDatasetUrl(){
		String dvnUrl = "";
		try {
			dvnUrl = PropertiesUtils.getPropValue("dvn_server") + "/dataset.xhtml?persistentId=";
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		if (this.getDatasetPersistentId() != null) {				
			return dvnUrl + getDatasetPersistentId() + "&version=DRAFT";
		} 
		
		return dvnUrl;
	}
	
	public Long getDvId() {
		return dvId;
	}

	public void setDvId(Long dvId) {
		this.dvId = dvId;
	}

	public Integer getVersion() {
		return version;
	}

	public void setVersion(Integer version) {
		this.version = version;
	}

	public String getFileName() {
		return fileName;
	}

	public void setFileName(String fileName) {
		this.fileName = fileName;
	}

	public Long getUserId() {
		return userId;
	}

	public void setUserId(Long userId) {
		this.userId = userId;
	}
	
	public String getUsername(){
		if(this.userId != null){
			return DataverseUtils.getUsername(this.userId);
		}
		return null;
	}
	
	public String getContent() {
		return content;
	}

	public void setContent(String content) {
		this.content = content;
	}

	public boolean isLastVersion() {
		return lastVersion;
	}

	public void setLastVersion(boolean lastVersion) {
		this.lastVersion = lastVersion;
	}
	
	public Long getBranchId() {
		return branchId;
	}

	public void setBranchId(Long branchId) {
		this.branchId = branchId;
	}

	public String getNotes() {
		return notes;
	}

	public void setNotes(String notes) {
		this.notes = notes;
	}
	
	 @Override
	 public int compareTo(LGFile o) {
	    return getCreationDate().compareTo(o.getCreationDate());
	 }

	public DuplexKey<Long, Long> getKey(){
		return new DuplexKey<Long, Long>(this.branchId, this.id);
	}


	public String getDatasetTitle() {
		return datasetTitle;
	}

	public void setDatasetTitle(String datasetTitle) {
		this.datasetTitle = datasetTitle;
	}

	

	public Long getFileIdInDv() {
		return fileIdInDv;
	}

	public void setFileIdInDv(Long fileIdInDv) {
		this.fileIdInDv = fileIdInDv;
	}

	public String getDatasetPersistentId() {
		return datasetPersistentId;
	}

	public void setDatasetPersistentId(String datasetPersistentId) {
		this.datasetPersistentId = datasetPersistentId;
	}

	@Override
	public String toString(){
		return "LGFile [id=" + id + ", branchId=" + branchId + ", fileName=" + fileName + "]";
	}
}