01: /*
02: * Created on 04/08/2005
03: *
04: * Swing Components - visit http://sf.net/projects/gfd
05: *
06: * Copyright (C) 2004 Igor Regis da Silva Simões
07: *
08: * This program is free software; you can redistribute it and/or
09: * modify it under the terms of the GNU General Public License
10: * as published by the Free Software Foundation; either version 2
11: * of the License, or (at your option) any later version.
12: *
13: * This program is distributed in the hope that it will be useful,
14: * but WITHOUT ANY WARRANTY; without even the implied warranty of
15: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16: * GNU General Public License for more details.
17: *
18: * You should have received a copy of the GNU General Public License
19: * along with this program; if not, write to the Free Software
20: * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
21: *
22: */
23: package br.com.gfp.reports;
24:
25: import java.util.Map;
26:
27: import br.com.gfp.dao.GFPController;
28: import br.com.gfp.util.SimpleLog;
29: import br.com.gfpshare.plugin.core.DynamicClassLoader;
30:
31: /**
32: *
33: * @author Igor Regis da Silva Simoes
34: * @since 04/08/2005 08:56:23
35: */
36: public abstract class ParameterProvider {
37:
38: /**
39: * Retorna uma instancia unica do parameter provider
40: * @return
41: */
42: public static ParameterProvider getInstance(String reportName) {
43: try {
44: return (ParameterProvider) DynamicClassLoader
45: .getClassLoader().loadClass(
46: "br.com.gfp.reports.param." + reportName)
47: .newInstance();
48: } catch (Exception e) {
49: ((SimpleLog) GFPController.getGFPController().getContexto()
50: .get(GFPController.LOG))
51: .log("Erro ao criar provedor de parametros para relatorio: "
52: + reportName);
53: ((SimpleLog) GFPController.getGFPController().getContexto()
54: .get(GFPController.LOG)).log(e
55: .getLocalizedMessage());
56: ((SimpleLog) GFPController.getGFPController().getContexto()
57: .get(GFPController.LOG)).log(e);
58: }
59: return null;
60: }
61:
62: /**
63: * Retorna os parametros em um Map para serem usados.
64: * Este método deve ter a inteligencia/logica de como
65: * pegar estes parametros (do usuario, do DB, etc)
66: * @return
67: */
68: protected abstract Map getParameters();
69: }
|