ConnectionCreator.java
package eu.javaexperience.database;
import java.sql.Connection;
import java.sql.SQLException;
import eu.javaexperience.asserts.AssertArgument;
import eu.javaexperience.interfaces.simple.SimpleGet;
import eu.javaexperience.reflect.Mirror;
public abstract class ConnectionCreator implements SimpleGet<Connection>
{
public static ConnectionCreator fromConnectionBuilder(final ConnectionBuilder builder, final String host, final int port, final String user, final String password, final String db)
{
AssertArgument.assertNotNull(builder, "type");
//AssertArgument.assertNotNull(user, "username");
//AssertArgument.assertNotNull(password, "password");
//AssertArgument.assertNotNull(db, "db");
return new ConnectionCreator()
{
@Override
public Connection get()
{
try
{
if(port < 0)
{
if(host == null)
{
return builder.openConnection(user, password, db);
}
else
{
return builder.openConnection(host, user, password, db);
}
}
else
{
return builder.openConnection(host, port, user, password, db);
}
}
catch (SQLException e)
{
Mirror.propagateAnyway(e);
return null;
}
}
};
}
}