01: /*
02: * Created on 16/03/2005
03: *
04: * Swing Components - visit http://sf.net/projects/gfd
05: *
06: * Copyright (C) 2005 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.dao;
24:
25: import java.sql.SQLException;
26: import java.util.HashMap;
27: import java.util.Map;
28:
29: import javax.swing.event.EventListenerList;
30:
31: import br.com.gfp.data.AccountType;
32: import br.com.gfpshare.db.AbstractDAO;
33:
34: /**
35: * Controler para os bancos
36: * A idéia é que esta classe realize a formulação de relatórios.
37: * @author Igor Regis da Silva Simoes
38: * @param <A> este controller só trabalho com persistent object do tipo TipoDeConta ou subclasse
39: */
40: public class AccountTypeDAO extends AbstractDAO<AccountType> {
41: /**
42: * Lista de listeners de eventos do controller
43: */
44: private static final EventListenerList listeners = new EventListenerList();
45:
46: private static Map<String, AccountType> cache = new HashMap<String, AccountType>();
47:
48: /**
49: * @see br.com.gfpshare.db.AbstractDAO#getListeners()
50: */
51: @Override
52: protected EventListenerList getListeners() {
53: return listeners;
54: }
55:
56: @Override
57: public synchronized AccountType getBy(AccountType argumento)
58: throws SQLException {
59: AccountType resultado = null;
60: if ((resultado = cache.get(argumento.getNome())) == null) {
61: resultado = super.getBy(argumento);
62: cache.put(resultado.getNome(), resultado);
63: }
64: return resultado;
65: }
66: }
|