/*
* Copyright (c) 2004, 2005, 2006 TADA AB - Taby Sweden
* Distributed under the terms shown in the file COPYRIGHT
* found in the root folder of this project or at
* http://eng.tada.se/osprojects/COPYRIGHT.html
*/
package org.postgresql.pljava.jdbc;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.DriverPropertyInfo;
import java.sql.SQLException;
import java.sql.SQLFeatureNotSupportedException;
import java.util.Properties;
import java.util.logging.Logger;
/**
*
* @author Thomas Hallgren
*/
public class SPIDriver implements Driver
{
private static final Logger s_logger = Logger.getLogger( "org.postgresql.pljava.jdbc" );
private static final String s_defaultURL = "jdbc:default:connection";
private static final int s_defaultURLLen = s_defaultURL.length();
private static final Connection s_defaultConn = new SPIConnection();
private static final DriverPropertyInfo[] s_noInfo = new DriverPropertyInfo[0];
static
{
try
{
DriverManager.registerDriver(new SPIDriver());
}
catch(SQLException e)
{
throw new ExceptionInInitializerError(e);
}
}
public Connection connect(String url, Properties info)
throws SQLException
{
return this.acceptsURL(url)
? s_defaultConn
: null;
}
public boolean acceptsURL(String url)
throws SQLException
{
if(url.startsWith(s_defaultURL))
{
// Accept extra info at end provided the defaultURL is
// delimited by a ':'
//
if(url.length() == s_defaultURLLen || url.charAt(s_defaultURLLen) == ':')
return true;
}
return false;
}
public DriverPropertyInfo[] getPropertyInfo(String url, Properties info)
throws SQLException
{
return s_noInfo;
}
public int getMajorVersion()
{
return 1;
}
public int getMinorVersion()
{
return 0;
}
public boolean jdbcCompliant()
{
return false; // Not all functionality is supported at present.
}
static Connection getDefault()
{
return s_defaultConn;
}
public Logger getParentLogger() throws SQLFeatureNotSupportedException
{
return s_logger;
}
}