package br.com.ec.domain.dto;
import br.com.ec.core.util.ArquivoUtil;
import br.com.ec.core.util.ImagemUtil;
import br.com.ec.core.util.TipoExtensao;
public class ImagemDTO
{
private static final int TAMANHO_MAXIMO_ARQUIVO_KBYTES_3000 =
3000;
private VigenciaDTO vigenciaDTO
;
private String descricao
;
private String extensao
;
private byte[] arquivo
;
public VigenciaDTO getVigenciaDTO
() {
return vigenciaDTO
;
}
public void setVigenciaDTO
(VigenciaDTO vigenciaDTO
) {
this.
vigenciaDTO = vigenciaDTO
;
}
public String getDescricao
() {
return descricao
;
}
public void setDescricao
(String descricao
) {
this.
descricao = descricao
;
}
public String getExtensao
() {
return extensao
;
}
public void setExtensao
(String extensao
) {
this.
extensao = extensao
;
}
public byte[] getArquivo
() {
return arquivo
;
}
public void setArquivo
(byte[] arquivo
) {
this.
arquivo = arquivo
;
}
public String getNomeArquivoCompleto
() {
return getDescricao
() +
"." + getExtensao
();
}
public TipoExtensao getTipoExtensao
() {
return TipoExtensao.
parse(getExtensao
());
}
public void compactarImagem
() {
if (this.
getTipoExtensao().
isTipoExtensaoImagem()) {
converterPngParaJpg
();
byte[] byteConvertido = ImagemUtil.
compactarImagemComTamanhoMaximoDeAlturaOuLargura(getArquivo
(), getExtensao
(),
1000);
setArquivo
(byteConvertido
);
}
}
public void converterPngParaJpg
() {
if (TipoExtensao.
PNG.
equals(getTipoExtensao
())) {
byte[] byteConvertido = ImagemUtil.
converterImagem(getArquivo
(), TipoExtensao.
JPG.
getValue());
setArquivo
(byteConvertido
);
setExtensao
(TipoExtensao.
JPG.
getValue());
}
}
public Boolean isExcedeuLimite
() {
if (!getTipoExtensao
().
isTipoExtensaoImagem()) {
Double tamanhoArquivo = ArquivoUtil.
retornarKilobyteDoArquivo(getArquivo
());
return (tamanhoArquivo
> TAMANHO_MAXIMO_ARQUIVO_KBYTES_3000
);
}
return false;
}
}