Class AbstractImmutableAttachProperties<T extends IAttachProperties<T>>
- java.lang.Object
-
- org.firebirdsql.gds.ng.AbstractImmutableAttachProperties<T>
-
- All Implemented Interfaces:
IAttachProperties<T>
,AttachmentProperties
,BaseProperties
- Direct Known Subclasses:
FbImmutableConnectionProperties
,FbImmutableServiceProperties
public abstract class AbstractImmutableAttachProperties<T extends IAttachProperties<T>> extends java.lang.Object implements IAttachProperties<T>
Abstract immutable implementation ofIAttachProperties
.NOTE: This class relies on the default implementation provided in
AttachmentProperties
, so in itself, immutability is not guaranteed by this class: subclasses need to befinal
and guard against mutation (that is, they do not override setters, unless they callimmutable()
(.- Since:
- 3.0
- Author:
- Mark Rotteveel
-
-
Field Summary
-
Fields inherited from interface org.firebirdsql.gds.ng.IAttachProperties
DEFAULT_CONNECT_TIMEOUT, DEFAULT_SO_TIMEOUT, DEFAULT_SOCKET_BUFFER_SIZE
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractImmutableAttachProperties(IAttachProperties<T> src)
Copy constructor for IAttachProperties.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Map<ConnectionProperty,java.lang.Object>
connectionPropertyValues()
An unmodifiable view on the connection properties held by this BaseProperties implementation.boolean
equals(java.lang.Object o)
java.lang.Boolean
getBooleanProperty(java.lang.String name)
Retrieves aboolean
property value by name.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.int
hashCode()
protected void
immutable()
Throws an UnsupportedOperationExceptionboolean
isImmutable()
protected ConnectionProperty
property(java.lang.String name)
Returns the property of the specified name.void
setBooleanProperty(java.lang.String name, java.lang.Boolean value)
Sets aboolean
property by name.void
setIntProperty(java.lang.String name, java.lang.Integer value)
Sets anint
property by name.void
setProperty(java.lang.String name, java.lang.String value)
Sets a property by name.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.firebirdsql.jaybird.props.AttachmentProperties
getAuthPlugins, getCharSet, getConnectTimeout, getDbCryptConfig, getEncoding, getParallelWorkers, getPassword, getPortNumber, getProcessId, getProcessName, getRoleName, getServerName, getSocketBufferSize, getSoTimeout, getType, getUser, getWireCrypt, isWireCompression, setAuthPlugins, setCharSet, setConnectTimeout, setDbCryptConfig, setEncoding, setParallelWorkers, setPassword, setPortNumber, setProcessId, setProcessName, setRoleName, setServerName, setSocketBufferSize, setSoTimeout, setType, setUser, setWireCompression, setWireCrypt
-
Methods inherited from interface org.firebirdsql.jaybird.props.BaseProperties
getBooleanProperty, getIntProperty, getProperty
-
Methods inherited from interface org.firebirdsql.gds.ng.IAttachProperties
asImmutable, asNewMutable, getAttachObjectName, getWireCryptAsEnum, setAttachObjectName, setWireCryptAsEnum
-
-
-
-
Constructor Detail
-
AbstractImmutableAttachProperties
protected AbstractImmutableAttachProperties(IAttachProperties<T> src)
Copy constructor for IAttachProperties.All properties defined in
IAttachProperties
are copied fromsrc
to the new instance.- Parameters:
src
- Source to copy from
-
-
Method Detail
-
getProperty
public final 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.- Specified by:
getProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Value of the property, or
null
when not set or not a known property
-
setProperty
public final 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
.- Specified by:
setProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
getIntProperty
public final 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- Specified by:
getIntProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Integer with value of the property, or
null
when not set
-
setIntProperty
public final 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.
- Specified by:
setIntProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
getBooleanProperty
public final 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- Specified by:
getBooleanProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)- Returns:
- Integer with value of the property, or
null
when not set
-
setBooleanProperty
public final 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.
- Specified by:
setBooleanProperty
in interfaceBaseProperties
- Parameters:
name
- Property name (notnull
or empty)value
- Property value (usenull
to apply default)
-
property
protected final ConnectionProperty property(java.lang.String name)
Returns the property of the specified name.When the property is not a known property, an unknown variant is returned.
- Parameters:
name
- Property name- Returns:
- A connection property instance, never
null
-
connectionPropertyValues
public final 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.- Specified by:
connectionPropertyValues
in interfaceBaseProperties
- Returns:
- An unmodifiable view on the property values held in this properties instance
-
isImmutable
public final boolean isImmutable()
- Specified by:
isImmutable
in interfaceIAttachProperties<T extends IAttachProperties<T>>
- Returns:
true
if this is an immutable implementation,false
if mutable
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
immutable
protected final void immutable()
Throws an UnsupportedOperationException
-
-