/* * This software is distributed under the terms of the FSF * Gnu Lesser General Public License (see lgpl.txt). * * This program is distributed WITHOUT ANY WARRANTY. See the * GNU General Public License for more details. */ package com.scooterframework.orm.sqldataexpress.connection; import java.io.Serializable; import java.util.Properties; import com.scooterframework.orm.sqldataexpress.config.DatabaseConfig; /** * DatabaseConnectionContext interface * * @author (Fei) John Chen */ public interface DatabaseConnectionContext extends Serializable { /** * Returns database connection name * * @return String */ public String getConnectionName(); /** * Returns before-connection callback class. */ public String getBeforeConnectionClassName(); /** * Returns before-connection callback method. */ public String getBeforeConnectionMethodName(); /** * Returns after-connection callback class. */ public String getAfterConnectionClassName(); /** * Returns after-connection callback method. */ public String getAfterConnectionMethodName(); /** * Returns database username */ public String getUsername(); /** * Returns database password */ public String getPassword(); /** * Returns the maximum time in seconds that this data source can wait while * attempting to connect to a database */ public Integer getLoginTimeout(); /** * Checks if the connection is readonly. * * @return true if readonly connection */ public boolean isReadonly(); /** * Sets readonly connection * * @param readonly <tt>true</tt> if read only connection is desired */ public void setReadonly(boolean readonly); /** * Checks if the connection is auto-commit. * * @return true if auto-commit connection */ public boolean isAutoCommit(); /** * Sets auto-commit connection * * @param autoCommit <tt>true</tt> if auto-commit connection is desired */ public void setAutoCommit(boolean autoCommit); /** * Returns the vendor name of the database * * @return String */ public String getVendor(); /** * Returns the schema of the database connection * * @return String */ public String getSchema(); /** * Checks whether to use login id as schema. * * @return true if using login id as schema */ public boolean useLoginAsSchema(); /** * Checks whether to use login username and password for * making a connection. * * @return true if using username and password for making a connection */ public boolean useLoginForConnection(); /** * Checks if transaction isolation level is specified. If not, the * database's default transaction isolation level is used. * * @return true if specified */ public boolean hasSpecifiedTransactionIsolationLevel(); /** * Returns the specified transaction isolation level. * * @return String */ public int getTransactionIsolationLevel(); /** * Returns all database connection properties */ public Properties getProperties(); /** * Sets all database connection properties */ public void setProperties(Properties properties); /** * Returns connection role name and password properties */ public Properties getConnectionRoles(); /** * Sets connection role name and password properties */ public void setConnectionRoles(Properties roles); /** * Database connection properties keys */ public static final String KEY_CONNECTION_NAME = DatabaseConfig.KEY_DB_CONNECTION_NAME; public static final String KEY_DATASOURCENAME = DatabaseConfig.KEY_DB_CONNECTION_DATASOURCE_NAME; public static final String KEY_DRIVER = DatabaseConfig.KEY_DB_CONNECTION_DRIVER; public static final String KEY_URL = DatabaseConfig.KEY_DB_CONNECTION_URL; public static final String KEY_BEFORE_CONNECTION = DatabaseConfig.KEY_DB_CONNECTION_BEFORE; public static final String KEY_AFTER_CONNECTION = DatabaseConfig.KEY_DB_CONNECTION_AFTER; public static final String KEY_USERNAME = DatabaseConfig.KEY_DB_CONNECTION_USERNAME; public static final String KEY_PASSWORD = DatabaseConfig.KEY_DB_CONNECTION_PASSWORD; public static final String KEY_LOGINTIMEOUT = DatabaseConfig.KEY_DB_CONNECTION_TIMEOUT; public static final String KEY_READONLY = DatabaseConfig.KEY_DB_CONNECTION_READONLY; public static final String KEY_AUTOCOMMIT = DatabaseConfig.KEY_DB_CONNECTION_AUTOCOMMIT; public static final String KEY_TRANSACTION_ISOLATION_LEVEL = DatabaseConfig.KEY_DB_CONNECTION_TRANSACTION_ISOLATION_LEVEL; public static final String KEY_VENDOR = DatabaseConfig.KEY_DB_CONNECTION_VENDOR; public static final String KEY_SCHEMA = DatabaseConfig.KEY_DB_CONNECTION_SCHEMA; public static final String KEY_USE_LOGIN_AS_SCHEMA = DatabaseConfig.KEY_DB_CONNECTION_USE_LOGIN_AS_SCHEMA; public static final String KEY_USE_LOGIN_FOR_CONNECTION = DatabaseConfig.KEY_DB_CONNECTION_USE_LOGIN_FOR_CONNECTION; public static final String KEY_MAX_POOL_SIZE = DatabaseConfig.KEY_DB_CONNECTION_MAX_POOL_SIZE; public static final String KEY_MIN_POOL_SIZE = DatabaseConfig.KEY_DB_CONNECTION_MIN_POOL_SIZE; public static final String KEY_ACQUIRE_INCREMENT = DatabaseConfig.KEY_DB_CONNECTION_ACQUIRE_INCREMENT; public static final String KEY_INITIAL_POOL_SIZE = DatabaseConfig.KEY_DB_CONNECTION_INITIAL_POOL_SIZE; public static final String KEY_MAX_IDLE_TIME = DatabaseConfig.KEY_DB_CONNECTION_MAX_IDLE_TIME; }