package br.com.colibri.modelo;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
import javax.persistence.Transient;
import org.primefaces.model.DefaultStreamedContent;
import org.primefaces.model.StreamedContent;
@Entity
@Table(name = "FILME")
public class Filme {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "ID_FILME")
private Long id;
@Column(name = "NOME", nullable = false, length = 30)
private String nome;
@Column(name = "SINOPSE", length = 255)
private String sinopse;
@Column(name = "DT_LANCAMENTO")
private Date dataLancamento;
@Column(name = "IMAGEM", length = 100000)
@Lob
private byte[] imagem;
@Column(name = "URL_TRAILER", length = 50)
private String urlTrailer;
@Column(name = "QTD")
private Integer quantidade;
@Transient
private StreamedContent imagemGerada;
public Filme() {
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getSinopse() {
return sinopse;
}
public void setSinopse(String sinopse) {
this.sinopse = sinopse;
}
public Date getDataLancamento() {
return dataLancamento;
}
public void setDataLancamento(Date dataLancamento) {
this.dataLancamento = dataLancamento;
}
public String getUrlTrailer() {
return urlTrailer;
}
public void setUrlTrailer(String urlTrailer) {
this.urlTrailer = urlTrailer;
}
public byte[] getImagem() {
return imagem;
}
public void setImagem(byte[] imagem) {
this.imagem = imagem;
}
public StreamedContent getImagemGerada() throws IOException {
if (this.imagemGerada == null) {
this.imagemGerada =
new DefaultStreamedContent(new ByteArrayInputStream(this.imagem),
"image/png", this.nome);
}
return this.imagemGerada;
}
public Integer getQuantidade() {
return quantidade;
}
public void setQuantidade(Integer quantidade) {
this.quantidade = quantidade;
}
}