/*
*
* 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 relatorio;
import java.util.HashMap;
import relatorio.analise.RelatorioListagemAnaliseMaquina;
import relatorio.analise.RelatorioListagemAnaliseRecurso;
import relatorio.analise.RelatorioListagemAnaliseTecido;
import relatorio.familia.RelatorioListagemFamilias;
import relatorio.familia.RelatorioListagemFamiliasComModelos;
import relatorio.modelo.RelatorioListagemModelos;
import relatorio.planoMestreDeProducaoPorModelo.RelatorioListagemPlanoMestreDeProducaoPorModelo;
import relatorio.recModel.RelatorioListagemRecModels;
import relatorio.recurso.RelatorioListagemRecursos;
import relatorio.tecModel.RelatorioListagemTecModels;
import relatorio.tecido.RelatorioListagemTecidos;
import relatorio.usuario.RelatorioListagemUsuarios;
/**
* @author Walanem
*
* Esta classe implementa o padr�o SINGLETON, cuja caracter�stica-chave de identifica��o � a presen�a de um
* construtor privado, possuindo o intuito de retornar uma nova instancia de uma classe caso ela n�o tenha
* sido instanciada ainda. Caso contr�rio, retorna uma referencia para a propria classe.
*/
public class RelatorioFactory {
private final static HashMap<Integer, Relatorio> relatorios = new HashMap();
private final static RelatorioFactory factory;
//Este bloco � executado uma unica vez, que � quando a classe � instanciada pela primeira vez.
static {
factory = new RelatorioFactory();
}
//No construtor, o Map de Relat�rios � preenchido com todos os relat�rios existentes na aplica��o
private RelatorioFactory() {
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_MODELOS, new RelatorioListagemModelos());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_TECIDOS, new RelatorioListagemTecidos());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_RECURSOS, new RelatorioListagemRecursos());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_RECMODELS, new RelatorioListagemRecModels());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_TECMODELS, new RelatorioListagemTecModels());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_FAMILIAS, new RelatorioListagemFamilias());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_FAMILIAS_COM_MODELOS, new RelatorioListagemFamiliasComModelos());
relatorios.put(Relatorio.RELATORIO_ANALISE_MAQUINA, new RelatorioListagemAnaliseMaquina());
relatorios.put(Relatorio.RELATORIO_ANALISE_TECIDO, new RelatorioListagemAnaliseTecido());
relatorios.put(Relatorio.RELATORIO_ANALISE_RECURSO, new RelatorioListagemAnaliseRecurso());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_PLANO_MESTRE_DE_PRODUCAO_POR_MODELO, new RelatorioListagemPlanoMestreDeProducaoPorModelo());
relatorios.put(Relatorio.RELATORIO_LISTAGEM_DE_USUARIOS, new RelatorioListagemUsuarios());
}
public static RelatorioFactory getInstance() {
return factory;
}
public static Relatorio getRelatorio(int tipoRelatorio) {
return relatorios.get(tipoRelatorio);
}
}