package eu.dnetlib.openaire.db.objects;

import java.io.Serializable;
import java.util.Collection;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity(name = "manifestations")
@Table(name = "manifestations")
public class Manifestation implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = -2793192986820725745L;

	@Id
	@Column(name = "manifestationID")
	private String manifestationID;
		
	@ManyToOne
	private Article article;	
	
	@ManyToOne
	private DataSource datasource;
	
	@OneToMany(mappedBy="manifestation", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
	private Collection<File> files;

	public String getManifestationID() {
		return manifestationID;
	}

	public void setManifestationID(String manifestationID) {
		this.manifestationID = manifestationID;
	}

	public Article getArticle() {
		return article;
	}

	public void setArticle(Article article) {
		this.article = article;
	}

	public DataSource getDatasource() {
		return datasource;
	}

	public void setDataSource(DataSource datasource) {
		this.datasource = datasource;
	}


	public Collection<File> getFiles() {
		return files;
	}

	public void setFiles(Collection<File> files) {
		this.files = files;
	}
	
}
