Class FBAbstractCommonDataSource
- java.lang.Object
-
- org.firebirdsql.ds.RootCommonDataSource
-
- org.firebirdsql.ds.AbstractConnectionPropertiesDataSource
-
- org.firebirdsql.ds.FBAbstractCommonDataSource
-
- All Implemented Interfaces:
javax.sql.CommonDataSource
,AttachmentProperties
,BaseProperties
,DatabaseConnectionProperties
,FirebirdConnectionProperties
- Direct Known Subclasses:
FBConnectionPoolDataSource
,FBXADataSource
public abstract class FBAbstractCommonDataSource extends AbstractConnectionPropertiesDataSource
Abstract class for properties and behaviour common to DataSources, XADataSources and ConnectionPoolDataSources- Since:
- 2.2
- Author:
- Mark Rotteveel
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
REF_DESCRIPTION
protected static java.lang.String
REF_PROPERTIES
-
Constructor Summary
Constructors Constructor Description FBAbstractCommonDataSource()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract void
checkNotStarted()
Method to check if this DataSource has not yet started.java.util.Map<ConnectionProperty,java.lang.Object>
connectionPropertyValues()
An unmodifiable view on the connection properties held by this BaseProperties implementation.java.lang.Boolean
getBooleanProperty(java.lang.String name)
Retrieves aboolean
property value by name.protected FBConnectionProperties
getConnectionProperties()
java.lang.String
getDescription()
java.lang.Integer
getIntProperty(java.lang.String name)
Retrieves anint
property value by name.java.lang.String
getProperty(java.lang.String name)
Retrieves a string property value by name.TransactionParameterBuffer
getTransactionParameters(int isolation)
Get the transaction parameter buffer corresponding to the current connection request information.void
setBooleanProperty(java.lang.String name, java.lang.Boolean value)
Sets aboolean
property by name.protected void
setConnectionProperties(FBConnectionProperties connectionProperties)
void
setDescription(java.lang.String description)
void
setIntProperty(java.lang.String name, java.lang.Integer value)
Sets anint
property by name.void
setNonStandardProperty(java.lang.String propertyMapping)
Method that allows setting non-standard property in the form "key=value" form.void
setProperty(java.lang.String name, java.lang.String value)
Sets a property by name.void
setTransactionParameters(int isolation, TransactionParameterBuffer tpb)
Set transaction parameters for the specified transaction isolation level.protected static void
updateReference(javax.naming.Reference ref, FBAbstractCommonDataSource instance)
Updates the supplied reference with RefAddr properties relevant to this class.protected LockCloseable
withLock()
-
Methods inherited from class org.firebirdsql.ds.AbstractConnectionPropertiesDataSource
getAuthPlugins, getBlobBufferSize, getBuffersNumber, getCharSet, getConnectTimeout, getDatabase, getDatabaseName, getDataTypeBind, getDbCryptConfig, getDecfloatRound, getDecfloatTraps, getDefaultIsolation, getDefaultTransactionIsolation, getEncoding, getGeneratedKeysEnabled, getLoginTimeout, getPageCacheSize, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getScrollableCursor, getServerBatchBufferSize, getServerName, getSessionTimeZone, getSocketBufferSize, getSoTimeout, getSqlDialect, getTpbMapping, getType, getUser, getUserName, getWireCrypt, isColumnLabelForName, isDefaultResultSetHoldable, isExtendedMetadata, isIgnoreProcedureType, isTimestampUsesLocalTimezone, isUseFirebirdAutocommit, isUseServerBatch, isUseStreamBlobs, isWireCompression, setAuthPlugins, setBlobBufferSize, setBuffersNumber, setCharSet, setColumnLabelForName, setConnectTimeout, setDatabase, setDatabaseName, setDataTypeBind, setDbCryptConfig, setDecfloatRound, setDecfloatTraps, setDefaultIsolation, setDefaultResultSetHoldable, setDefaultTransactionIsolation, setEncoding, setExtendedMetadata, setGeneratedKeysEnabled, setIgnoreProcedureType, setLoginTimeout, setPageCacheSize, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setScrollableCursor, setServerBatchBufferSize, setServerName, setSessionTimeZone, setSocketBufferSize, setSoTimeout, setSqlDialect, setTimestampUsesLocalTimezone, setTpbMapping, setType, setUseFirebirdAutocommit, setUser, setUserName, setUseServerBatch, setUseStreamBlobs, setWireCompression, setWireCrypt
-
Methods inherited from class org.firebirdsql.ds.RootCommonDataSource
getLogWriter, getParentLogger, setLogWriter
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties
getBooleanProperty, getIntProperty, getProperty
-
Methods inherited from interface org.firebirdsql.jdbc.FirebirdConnectionProperties
getNonStandardProperty, setNonStandardProperty
-
-
-
-
Field Detail
-
REF_DESCRIPTION
protected static final java.lang.String REF_DESCRIPTION
- See Also:
- Constant Field Values
-
REF_PROPERTIES
protected static final java.lang.String REF_PROPERTIES
- See Also:
- Constant Field Values
-
-
Method Detail
-
withLock
protected final LockCloseable withLock()
-
checkNotStarted
protected abstract void checkNotStarted() throws java.lang.IllegalStateException
Method to check if this DataSource has not yet started.Implementations should throw IllegalStateException when the DataSource is already in use and modifying properties is not allowed.
- Throws:
java.lang.IllegalStateException
- When the DataSource is already in use
-
getDescription
public java.lang.String getDescription()
-
setDescription
public void setDescription(java.lang.String description)
-
getTransactionParameters
public TransactionParameterBuffer getTransactionParameters(int isolation)
Description copied from interface:FirebirdConnectionProperties
Get the transaction parameter buffer corresponding to the current connection request information.- Parameters:
isolation
- transaction isolation level for which TPB should be returned.- Returns:
- instance of
TransactionParameterBuffer
.
-
setTransactionParameters
public void setTransactionParameters(int isolation, TransactionParameterBuffer tpb)
Description copied from interface:FirebirdConnectionProperties
Set transaction parameters for the specified transaction isolation level. The specified TPB is used as a default mapping for the specified isolation level.- Parameters:
isolation
- transaction isolation level.tpb
- instance ofTransactionParameterBuffer
containing transaction parameters.
-
setNonStandardProperty
public final void setNonStandardProperty(java.lang.String propertyMapping)
Method that allows setting non-standard property in the form "key=value" form. This method is needed by some containers to specify properties in the configuration.- Parameters:
propertyMapping
- mapping between property name (key) and its value. Name and value are separated with "=", ":" or whitespace character. Whitespace characters on the beginning of the string and between key and value are ignored. No escaping is possible: "\n" is backslash-en, not a new line mark.- See Also:
setProperty(String, String)
-
getProperty
public java.lang.String getProperty(java.lang.String name)
Description copied from interface:BaseProperties
Retrieves a string property value by name.For properties with an explicit default, this method should return the string presentation of that default, not
null
. Forint
orboolean
the string equivalent is returned.- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Value of the property, or
null
when not set or not a known property
-
setProperty
public void setProperty(java.lang.String name, java.lang.String value)
Description copied from interface:BaseProperties
Sets a property by name.This method can be used to set all defined properties, but also properties not known by Jaybird. When setting
int
orboolean
properties, the appropriate conversions are applied. Usingnull
will reset to the default value. Forboolean
properties, an empty string is taken to meantrue
.- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
getIntProperty
public java.lang.Integer getIntProperty(java.lang.String name)
Description copied from interface:BaseProperties
Retrieves anint
property value by name.For properties with an explicit default, this method should return the integer presentation of that default. For implementation simplicity, it is allowed to convert any string property to
int
instead of checking if something is actually anint
property- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Integer with value of the property, or
null
when not set
-
setIntProperty
public void setIntProperty(java.lang.String name, java.lang.Integer value)
Description copied from interface:BaseProperties
Sets anint
property by name.For implementation simplicity, it is allowed to also set string properties. The value set will be the string equivalent.
- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
getBooleanProperty
public java.lang.Boolean getBooleanProperty(java.lang.String name)
Description copied from interface:BaseProperties
Retrieves aboolean
property value by name.For properties with an explicit default, this method should return the boolean presentation of that default. For implementation simplicity, it is allowed to convert any string property to
boolean
instead of checking if something is actually anint
property- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Integer with value of the property, or
null
when not set
-
setBooleanProperty
public void setBooleanProperty(java.lang.String name, java.lang.Boolean value)
Description copied from interface:BaseProperties
Sets aboolean
property by name.For implementation simplicity, it is allowed to also set string properties. The value set will be the string equivalent.
- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
connectionPropertyValues
public java.util.Map<ConnectionProperty,java.lang.Object> connectionPropertyValues()
Description copied from interface:BaseProperties
An unmodifiable view on the connection properties held by this BaseProperties implementation.Be aware, implementations can have additional properties that are not mapped from
ConnectionProperty
. Such properties will need to be retrieved in an implementation-specific manner.- Returns:
- An unmodifiable view on the property values held in this properties instance
-
setConnectionProperties
protected final void setConnectionProperties(FBConnectionProperties connectionProperties)
-
getConnectionProperties
protected final FBConnectionProperties getConnectionProperties()
-
updateReference
protected static void updateReference(javax.naming.Reference ref, FBAbstractCommonDataSource instance) throws javax.naming.NamingException
Updates the supplied reference with RefAddr properties relevant to this class.- Parameters:
ref
- Reference to updateinstance
- Instance of this class to obtain values- Throws:
javax.naming.NamingException
-
-