/* * SSSync, a Simple and Stupid Synchronizer for data with multi-valued attributes * Copyright (C) 2014 Ludovic Pouzenc * * This file is part of SSSync. * * SSSync is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * SSSync is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with SSSync. If not, see */ package data.io; import java.io.Closeable; import java.io.IOException; import java.util.HashMap; import data.io.ldap.LDAPConnectionWrapper; import data.io.sql.SQLConnectionWrapper; /** * TODO javadoc * * @author lpouzenc */ public class ConnectionsHolder implements Closeable { public final HashMap connMapLDAP; public final HashMap connMapSQL; //TODO : with some refactoring, this class may disappear /** * Bean class to keep track of all opened connections in a single object */ public ConnectionsHolder() { this.connMapLDAP = new HashMap(); this.connMapSQL = new HashMap(); } public LDAPConnectionWrapper getLDAPConnectionBuilder(String conn) { return connMapLDAP.get(conn); } public SQLConnectionWrapper getSQLConnectionBuilder(String conn) { return connMapSQL.get(conn); } public void putConnLDAP(String connId, LDAPConnectionWrapper connLDAP) { this.connMapLDAP.put(connId, connLDAP); } public void putConnSQL(String connId, SQLConnectionWrapper connSQL) { this.connMapSQL.put(connId, connSQL); } /** * Close all connections */ @Override public void close() throws IOException { // XXX : this will stop at first uncloseable connection. It isn't a very interesting problem however. for ( LDAPConnectionWrapper connLDAP: connMapLDAP.values() ) { connLDAP.close(); } for ( SQLConnectionWrapper connSQL: connMapSQL.values() ) { connSQL.close(); } } }