001/*
002 * HA-JDBC: High-Availability JDBC
003 * Copyright (C) 2012  Paul Ferraro
004 *
005 * This program is free software: you can redistribute it and/or modify
006 * it under the terms of the GNU Lesser General Public License as published by
007 * the Free Software Foundation, either version 3 of the License, or
008 * (at your option) any later version.
009 *
010 * This program is distributed in the hope that it will be useful,
011 * but WITHOUT ANY WARRANTY; without even the implied warranty of
012 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
013 * GNU Lesser General Public License for more details.
014 *
015 * You should have received a copy of the GNU Lesser General Public License
016 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
017 */
018package net.sf.hajdbc.util;
019
020import java.io.Closeable;
021import java.io.IOException;
022import java.io.ObjectInput;
023import java.io.ObjectOutput;
024import java.sql.Connection;
025import java.sql.ResultSet;
026import java.sql.SQLException;
027import java.sql.Statement;
028
029import net.sf.hajdbc.logging.Level;
030import net.sf.hajdbc.logging.Logger;
031import net.sf.hajdbc.logging.LoggerFactory;
032
033public class Resources
034{
035        private static final Logger logger = LoggerFactory.getLogger(Resources.class);
036        
037        public static void close(Closeable resource)
038        {
039                try
040                {
041                        resource.close();
042                }
043                catch (IOException e)
044                {
045                        logger.log(Level.WARN, e);
046                }
047        }
048        
049        public static void close(ObjectOutput output)
050        {
051                try
052                {
053                        output.close();
054                }
055                catch (IOException e)
056                {
057                        logger.log(Level.WARN, e);
058                }
059        }
060        
061        public static void close(ObjectInput input)
062        {
063                try
064                {
065                        input.close();
066                }
067                catch (IOException e)
068                {
069                        logger.log(Level.WARN, e);
070                }
071        }
072        
073        public static void close(Connection connection)
074        {
075                try
076                {
077                        connection.close();
078                }
079                catch (SQLException e)
080                {
081                        logger.log(Level.WARN, e);
082                }
083        }
084        
085        public static void close(Statement statement)
086        {
087                try
088                {
089                        statement.close();
090                }
091                catch (SQLException e)
092                {
093                        logger.log(Level.WARN, e);
094                }
095        }
096        
097        public static void close(ResultSet resultSet)
098        {
099                try
100                {
101                        resultSet.close();
102                }
103                catch (SQLException e)
104                {
105                        logger.log(Level.WARN, e);
106                }
107        }
108        
109        private Resources()
110        {
111                // Hide
112        }
113}