001/* 002 * HA-JDBC: High-Availability JDBC 003 * Copyright (c) 2004-2007 Paul Ferraro 004 * 005 * This library is free software; you can redistribute it and/or modify it 006 * under the terms of the GNU Lesser General Public License as published by the 007 * Free Software Foundation; either version 2.1 of the License, or (at your 008 * option) any later version. 009 * 010 * This library is distributed in the hope that it will be useful, but WITHOUT 011 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 012 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License 013 * for more details. 014 * 015 * You should have received a copy of the GNU Lesser General Public License 016 * along with this library; if not, write to the Free Software Foundation, 017 * Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 018 * 019 * Contact: ferraro@users.sourceforge.net 020 */ 021package net.sf.hajdbc.sql; 022 023import java.sql.Connection; 024import java.sql.SQLException; 025 026import javax.sql.DataSource; 027 028 029/** 030 * A database described by a {@link DataSource}. 031 * @author Paul Ferraro 032 */ 033public class DataSourceDatabase extends CommonDataSourceDatabase<DataSource> 034{ 035 /** 036 * Constructs a new database described by a {@link DataSource}. 037 */ 038 public DataSourceDatabase() 039 { 040 super(DataSource.class); 041 } 042 043 /** 044 * @param dataSource A DataSource 045 * @return a database connection 046 * @throws SQLException if a database connection could not be made 047 * @see net.sf.hajdbc.Database#connect(Object) 048 */ 049 @Override 050 public Connection connect(DataSource dataSource) throws SQLException 051 { 052 String user = this.getUser(); 053 054 return (user != null) ? dataSource.getConnection(user, this.getPassword()) : dataSource.getConnection(); 055 } 056}