/*
*
* Copyright (c) 2013 - 2014 INT - National Institute of Technology & COPPE - Alberto Luiz Coimbra Institute
- Graduate School and Research in Engineering.
* See the file license.txt for copyright permission.
*
*/
package carga;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Date;
import modelo.ModelagemFuzzy;
import org.richfaces.model.UploadItem;
import service.ModelagemFuzzyAppService;
import service.controleTransacao.FabricaDeAppService;
import service.exception.AplicacaoException;
import util.Constantes;
import util.DataUtil;
/**
*
* Sobre a Carga:
* � uma Carga do sistema, portanto deve herdar de CargaBase e
* implementar o m�todo executar().
* Nesse m�todo executar � que � chamado os outros m�todos que s�o
* as et�pas dessa carga.
* Portanto se � necessario rodar um m�todo depois do outro, eles devem ser chamados
* na ordem correta. Ex:
* incluiHP() vem antes de inicializaHP(), portanto no m�todo executar() eles devem ser chamados nessa ordem.
*
* Terminado de executar todas as etapas � preciso retornar true.
* Se houver algum problema(exce��o) na execu��o de um das etapas, essa exce��o deve ser lancada
*
* Essa Carga:
* Inclui um arquivo de base de modelagem,
* esse arquivo tem que ter um caminho pre-definido
* no sistema, da mesma forma que tem os relatorios.
* Esse caminho � representado pela constante:
* Constantes.CAMINHO_ABSOLUTO_ARQUIVOS_CARGA
* @author felipe.arruda
*/
public class CargaEstudoIncluiModelagemFuzzy extends CargaBase{
private static ModelagemFuzzyAppService modelagemFuzzyService;
private UploadItem itemParaEnvio;
public CargaEstudoIncluiModelagemFuzzy(){
try {
modelagemFuzzyService = FabricaDeAppService.getAppService(ModelagemFuzzyAppService.class);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* envia um arquivo de modelagem para o sistema e cria uma modelagemfuzzy
* usando ele
*/
@Override
public boolean executar() throws AplicacaoException {
this.IncluirModelagemFuzzy();
return true;
}
/**
* Prepara o UploadItem com o arquivo de producao.xlf
*/
public void prepararArquivoParaEnviar(){
String nome_arquivo = "producao.xfl";
String caminho = Constantes.CAMINHO_ABSOLUTO_ARQUIVOS_CARGA + nome_arquivo;
java.io.File file = new java.io.File(caminho);
byte[] b = new byte[(int) file.length()];
try {
FileInputStream fileInputStream = new FileInputStream(file);
fileInputStream.read(b);
} catch (FileNotFoundException e) {
System.out.println("File Not Found.");
e.printStackTrace();
} catch (IOException e1) {
System.out.println("Error Reading The File.");
e1.printStackTrace();
}
itemParaEnvio = new UploadItem(nome_arquivo,(int)file.length(),"xfl",b);
}
/**
* Inclui um arquivo de modelagem
* pegando um arquivo do sistema e "enviando" usando o
* m�todo modelagemFuzzyService.incluiComUpload.
*
* Essa modelagem tem os dados:
* NomeModelagemFuzzy: "producao"
* descricao: "producao limites novos"
* NomeArquivo: "producao.xfl"
* Autor: "degep"
* Finalidade: "GERAR_PMP"
* @author felipe.arruda
* @throws AplicacaoException
*
*/
public void IncluirModelagemFuzzy() throws AplicacaoException {
prepararArquivoParaEnviar();
Date dataCriacao = new Date();
ModelagemFuzzy modelagemFuzzyCorrente = new ModelagemFuzzy();
modelagemFuzzyCorrente.setNomeModelagemFuzzy("producao");
modelagemFuzzyCorrente.setDescrModelagemFuzzy("producao limites novos");
modelagemFuzzyCorrente.setDataCriacao(DataUtil.dateToCalendar(dataCriacao));
modelagemFuzzyCorrente.setNomeArquivo(itemParaEnvio.getFileName());
modelagemFuzzyCorrente.setAutor("degep");
modelagemFuzzyCorrente.setFinalidadeModelagem("GERAR_PMP");
modelagemFuzzyService.incluiComUpload(modelagemFuzzyCorrente, itemParaEnvio);
}
}