Subversion Repositories Integrator Subversion

Rev

Rev 530 | Rev 533 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

package br.com.ec.domain.service.impl;

import java.io.File;
import java.io.FileOutputStream;

import javax.faces.context.FacesContext;
import javax.servlet.ServletContext;

import org.primefaces.model.file.UploadedFile;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import br.com.ec.core.generic.AbstractService;
import br.com.ec.core.generic.GenericRepository;
import br.com.ec.core.util.ArquivoUtil;
import br.com.ec.core.util.StringUtil;
import br.com.ec.core.validador.Validador;
import br.com.ec.domain.dto.ImagemDTO;
import br.com.ec.domain.service.ImagemService;
import br.com.ec.domain.shared.ConstantesSEC;

@Service
public class ImagemServiceImpl extends AbstractService<ImagemDTO> implements ImagemService {
       
        @Autowired
        public ImagemServiceImpl(Validador validador) {
                super(validador);
        }

        @Override
        protected GenericRepository<ImagemDTO> getRepository() {
                return null;
        }
       
        @Override
        public String caminhoPadraoFotos() {
                return ConstantesSEC.TESTE_EMISSAO_LOCAL? ConstantesSEC.Foto.CAMINHO_PADRAO_LOCAL : ConstantesSEC.Foto.CAMINHO_PADRAO_SERVIDOR;
        }
       
        @Override
        public String caminhoPastaFotos() {
                ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
                return ConstantesSEC.TESTE_EMISSAO_LOCAL?
                                servletContext.getRealPath("") + File.separator + ConstantesSEC.Foto.NOME_PASTA_PADRAO + File.separator :
                                servletContext.getRealPath("") + File.separator + ".." + File.separator + ConstantesSEC.Foto.NOME_PASTA_PADRAO + File.separator;
        }
       
        @Override
        public String caminhoPadraoImagens() {
                return ConstantesSEC.TESTE_EMISSAO_LOCAL? ConstantesSEC.Imagem.CAMINHO_PADRAO_LOCAL : ConstantesSEC.Imagem.CAMINHO_PADRAO_SERVIDOR;
        }
       
        @Override
        public String caminhoPastaImagens() {
                ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
                return ConstantesSEC.TESTE_EMISSAO_LOCAL?
                                servletContext.getRealPath("") + File.separator + ConstantesSEC.Imagem.NOME_PASTA_PADRAO + File.separator :
                                servletContext.getRealPath("") + File.separator + ".." + File.separator + ConstantesSEC.Imagem.NOME_PASTA_PADRAO + File.separator;
        }
       
        @Override
        public String caminhoPadraoEstampas() {
                return ConstantesSEC.TESTE_EMISSAO_LOCAL? ConstantesSEC.Estampa.CAMINHO_PADRAO_LOCAL : ConstantesSEC.Estampa.CAMINHO_PADRAO_SERVIDOR;
        }
       
        @Override
        public String caminhoPastaEstampas() {
                ServletContext servletContext = (ServletContext) FacesContext.getCurrentInstance().getExternalContext().getContext();
                return ConstantesSEC.TESTE_EMISSAO_LOCAL?
                                servletContext.getRealPath("") + File.separator + ConstantesSEC.Estampa.NOME_PASTA_PADRAO + File.separator :
                                servletContext.getRealPath("") + File.separator + ".." + File.separator + ConstantesSEC.Estampa.NOME_PASTA_PADRAO + File.separator;
        }
       
        /*****************************************/
       
        @Override
        public String retornarCaminhoImagem(String pasta, String nomeArquivo, String extensaoArquivo) {
                File foto = new File(pasta + nomeArquivo + "." + StringUtil.setarLowerCase(extensaoArquivo));
                return foto.exists()? pasta + nomeArquivo + "." + StringUtil.setarLowerCase(extensaoArquivo) : pasta + "SEM_IMAGEM.png";
        }
       
        @Override
        public ImagemDTO uploadImagem(UploadedFile e, String nomeArquivo, String caminhoPasta) {
                ImagemDTO imagemAdicionada = gerarArquivo(e, nomeArquivo);
                uploadFisico(imagemAdicionada, caminhoPasta);
//              lancarExcecaoCasoArquivoExcedeuLimite(imagemAdicionada);
//              imagemAdicionada.compactarImagem();
//              imagemAdicionada.converterPngParaJpg();
                return imagemAdicionada;
        }
       
        public ImagemDTO gerarArquivo(UploadedFile file, String nomeArquivo) {
                ImagemDTO arquivo = new ImagemDTO();
                arquivo.setArquivo(file.getContent());
                arquivo.setDescricao(nomeArquivo);
                arquivo.setExtensao(ArquivoUtil.retornarExtensaoDoArquivo(file.getFileName()));
                return arquivo;
        }
       
        public void uploadFisico(ImagemDTO arquivoParaUpload, String caminhoPasta) {
                String caminho = caminhoPasta + arquivoParaUpload.getDescricao() + "." + arquivoParaUpload.getExtensao();
                FileOutputStream fos;
                try {
                        fos = new FileOutputStream(caminho);
                        fos.write(arquivoParaUpload.getArquivo());
                        fos.close();
                } catch (Exception e1) {
                        e1.printStackTrace();
                }
        }
       
}