Package org.mariadb.jdbc.client.context
Class BaseContext
- java.lang.Object
-
- org.mariadb.jdbc.client.context.BaseContext
-
- All Implemented Interfaces:
Context
- Direct Known Subclasses:
RedoContext
public class BaseContext extends java.lang.Object implements Context
Context (current connection state) of a connection
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.Long
autoIncrement
private boolean
canUseTransactionIsolation
private java.lang.String
charset
private long
clientCapabilities
private java.util.function.Function<ReadableByteBuf,ColumnDecoder>
columnDecoderFunction
private Configuration
conf
private java.util.TimeZone
connectionTimeZone
private java.lang.String
database
Server current databaseprivate boolean
eofDeprecated
private ExceptionFactory
exceptionFactory
private HostAddress
hostAddress
private PrepareCache
prepareCache
LRU prepare cache objectprivate java.lang.String
redirectUrl
private byte[]
seed
private long
serverCapabilities
protected int
serverStatus
Server status contextprivate boolean
skipMeta
private int
stateFlag
Connection state use flagprivate long
threadId
private java.lang.Integer
transactionIsolationLevel
Server current transaction isolation levelprivate ServerVersion
version
private int
warning
Server current warning count
-
Constructor Summary
Constructors Constructor Description BaseContext(HostAddress hostAddress, InitialHandshakePacket handshake, long clientCapabilities, Configuration conf, ExceptionFactory exceptionFactory, PrepareCache prepareCache)
Constructor of connection context
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addStateFlag(int state)
Indicate connection state (for pooling)boolean
canSkipMeta()
Can server skip prepared statement metadataboolean
canUseTransactionIsolation()
Can rely on transaction_isolation or keep using deprecated tx_isolation variablejava.lang.Long
getAutoIncrement()
Get server current auto_increment valuejava.lang.String
getCharset()
Retrieve current charset if session state get itjava.util.function.Function<ReadableByteBuf,ColumnDecoder>
getColumnDecoderFunction()
Column decoder functionConfiguration
getConf()
Get connection configurationjava.util.TimeZone
getConnectionTimeZone()
Get current connection timezonejava.lang.String
getDatabase()
Get current connection databasejava.util.Calendar
getDefaultCalendar()
Get calendar depending on configurationExceptionFactory
getExceptionFactory()
Get connection exception factoryPrepare
getPrepareCacheCmd(java.lang.String sql, BasePreparedStatement preparedStatement)
Return cached prepare if key matchjava.lang.String
getRedirectUrl()
get redirect Url if server indicate reconnection urlbyte[]
getSeed()
Get connection initial seedint
getServerStatus()
Get server connection stateint
getStateFlag()
return connection current state change flaglong
getThreadId()
return current thread idjava.lang.Integer
getTransactionIsolationLevel()
Get connection transaction isolation levelServerVersion
getVersion()
Retrieve server version informationint
getWarning()
has server warningsboolean
hasClientCapability(long flag)
has client capabilityboolean
hasServerCapability(long flag)
has server capabilityboolean
isEofDeprecated()
does protocol remove EOF in exchangesboolean
permitPipeline()
Does server and client permit pipelinePrepare
putPrepareCacheCmd(java.lang.String sql, Prepare result, BasePreparedStatement preparedStatement)
Put prepare result in cachevoid
resetPrepareCache()
Reset prepare cache (after a failover)void
resetStateFlag()
reset connection state change flagvoid
setAutoIncrement(long autoIncrement)
Set server autoincrement valuevoid
setCharset(java.lang.String charset)
Indicate server charset changevoid
setConnectionTimeZone(java.util.TimeZone connectionTimeZone)
Set current connection timezonevoid
setDatabase(java.lang.String database)
set current database contextvoid
setRedirectUrl(java.lang.String redirectUrl)
Set server redirection urlvoid
setServerStatus(int serverStatus)
Set server connection statevoid
setThreadId(long connectionId)
Indicate server connection Id (not truncated)void
setTransactionIsolationLevel(java.lang.Integer transactionIsolationLevel)
Set current connection transaction isolation levelvoid
setTreadsConnected(long threadsConnected)
Indicate the number of connection on this servervoid
setWarning(int warning)
set server state warning number
-
-
-
Field Detail
-
serverCapabilities
private final long serverCapabilities
-
clientCapabilities
private final long clientCapabilities
-
seed
private final byte[] seed
-
version
private final ServerVersion version
-
eofDeprecated
private final boolean eofDeprecated
-
skipMeta
private final boolean skipMeta
-
columnDecoderFunction
private final java.util.function.Function<ReadableByteBuf,ColumnDecoder> columnDecoderFunction
-
conf
private final Configuration conf
-
exceptionFactory
private final ExceptionFactory exceptionFactory
-
canUseTransactionIsolation
private final boolean canUseTransactionIsolation
-
prepareCache
private final PrepareCache prepareCache
LRU prepare cache object
-
hostAddress
private final HostAddress hostAddress
-
serverStatus
protected int serverStatus
Server status context
-
autoIncrement
private java.lang.Long autoIncrement
-
threadId
private long threadId
-
charset
private java.lang.String charset
-
database
private java.lang.String database
Server current database
-
transactionIsolationLevel
private java.lang.Integer transactionIsolationLevel
Server current transaction isolation level
-
warning
private int warning
Server current warning count
-
stateFlag
private int stateFlag
Connection state use flag
-
redirectUrl
private java.lang.String redirectUrl
-
connectionTimeZone
private java.util.TimeZone connectionTimeZone
-
-
Constructor Detail
-
BaseContext
public BaseContext(HostAddress hostAddress, InitialHandshakePacket handshake, long clientCapabilities, Configuration conf, ExceptionFactory exceptionFactory, PrepareCache prepareCache)
Constructor of connection context- Parameters:
hostAddress
- host addresshandshake
- server handshakeclientCapabilities
- client capabilitiesconf
- connection configurationexceptionFactory
- connection exception factoryprepareCache
- LRU prepare cache
-
-
Method Detail
-
getThreadId
public long getThreadId()
Description copied from interface:Context
return current thread id- Specified by:
getThreadId
in interfaceContext
- Returns:
- current server thread id
-
setThreadId
public void setThreadId(long connectionId)
Description copied from interface:Context
Indicate server connection Id (not truncated)- Specified by:
setThreadId
in interfaceContext
- Parameters:
connectionId
- connection id
-
getSeed
public byte[] getSeed()
Description copied from interface:Context
Get connection initial seed
-
hasServerCapability
public boolean hasServerCapability(long flag)
Description copied from interface:Context
has server capability- Specified by:
hasServerCapability
in interfaceContext
- Parameters:
flag
- capability to check- Returns:
- true if server has capability
-
hasClientCapability
public boolean hasClientCapability(long flag)
Description copied from interface:Context
has client capability- Specified by:
hasClientCapability
in interfaceContext
- Parameters:
flag
- capability to check- Returns:
- true if client has capability
-
permitPipeline
public boolean permitPipeline()
Description copied from interface:Context
Does server and client permit pipeline- Specified by:
permitPipeline
in interfaceContext
- Returns:
- true if permitted
-
getServerStatus
public int getServerStatus()
Description copied from interface:Context
Get server connection state- Specified by:
getServerStatus
in interfaceContext
- Returns:
- server status
-
setServerStatus
public void setServerStatus(int serverStatus)
Description copied from interface:Context
Set server connection state- Specified by:
setServerStatus
in interfaceContext
- Parameters:
serverStatus
- server status
-
getDatabase
public java.lang.String getDatabase()
Description copied from interface:Context
Get current connection database- Specified by:
getDatabase
in interfaceContext
- Returns:
- database
-
setDatabase
public void setDatabase(java.lang.String database)
Description copied from interface:Context
set current database context- Specified by:
setDatabase
in interfaceContext
- Parameters:
database
- database
-
getVersion
public ServerVersion getVersion()
Description copied from interface:Context
Retrieve server version information- Specified by:
getVersion
in interfaceContext
- Returns:
- server version
-
isEofDeprecated
public boolean isEofDeprecated()
Description copied from interface:Context
does protocol remove EOF in exchanges- Specified by:
isEofDeprecated
in interfaceContext
- Returns:
- if EOF packet are deprecated
-
getColumnDecoderFunction
public java.util.function.Function<ReadableByteBuf,ColumnDecoder> getColumnDecoderFunction()
Description copied from interface:Context
Column decoder function- Specified by:
getColumnDecoderFunction
in interfaceContext
- Returns:
- Column decoder function
-
canSkipMeta
public boolean canSkipMeta()
Description copied from interface:Context
Can server skip prepared statement metadata- Specified by:
canSkipMeta
in interfaceContext
- Returns:
- true if possible
-
getWarning
public int getWarning()
Description copied from interface:Context
has server warnings- Specified by:
getWarning
in interfaceContext
- Returns:
- has warnings
-
setWarning
public void setWarning(int warning)
Description copied from interface:Context
set server state warning number- Specified by:
setWarning
in interfaceContext
- Parameters:
warning
- warning number
-
getExceptionFactory
public ExceptionFactory getExceptionFactory()
Description copied from interface:Context
Get connection exception factory- Specified by:
getExceptionFactory
in interfaceContext
- Returns:
- exception factory
-
getConf
public Configuration getConf()
Description copied from interface:Context
Get connection configuration
-
getTransactionIsolationLevel
public java.lang.Integer getTransactionIsolationLevel()
Description copied from interface:Context
Get connection transaction isolation level- Specified by:
getTransactionIsolationLevel
in interfaceContext
- Returns:
- connection transaction isolation level
-
setTransactionIsolationLevel
public void setTransactionIsolationLevel(java.lang.Integer transactionIsolationLevel)
Description copied from interface:Context
Set current connection transaction isolation level- Specified by:
setTransactionIsolationLevel
in interfaceContext
- Parameters:
transactionIsolationLevel
- new connection transaction isolation level
-
getPrepareCacheCmd
public Prepare getPrepareCacheCmd(java.lang.String sql, BasePreparedStatement preparedStatement)
Description copied from interface:Context
Return cached prepare if key match- Specified by:
getPrepareCacheCmd
in interfaceContext
- Parameters:
sql
- sql commandpreparedStatement
- current statement- Returns:
- Prepare if found, null if not
-
putPrepareCacheCmd
public Prepare putPrepareCacheCmd(java.lang.String sql, Prepare result, BasePreparedStatement preparedStatement)
Description copied from interface:Context
Put prepare result in cache- Specified by:
putPrepareCacheCmd
in interfaceContext
- Parameters:
sql
- sql commandresult
- prepare resultpreparedStatement
- current statement- Returns:
- Prepare if was already cached
-
resetPrepareCache
public void resetPrepareCache()
Description copied from interface:Context
Reset prepare cache (after a failover)- Specified by:
resetPrepareCache
in interfaceContext
-
getStateFlag
public int getStateFlag()
Description copied from interface:Context
return connection current state change flag- Specified by:
getStateFlag
in interfaceContext
- Returns:
- connection current state change flag
-
resetStateFlag
public void resetStateFlag()
Description copied from interface:Context
reset connection state change flag- Specified by:
resetStateFlag
in interfaceContext
-
addStateFlag
public void addStateFlag(int state)
Description copied from interface:Context
Indicate connection state (for pooling)- Specified by:
addStateFlag
in interfaceContext
- Parameters:
state
- indicate that some connection state has changed
-
setTreadsConnected
public void setTreadsConnected(long threadsConnected)
Description copied from interface:Context
Indicate the number of connection on this server- Specified by:
setTreadsConnected
in interfaceContext
- Parameters:
threadsConnected
- number of connected threads
-
getAutoIncrement
public java.lang.Long getAutoIncrement()
Description copied from interface:Context
Get server current auto_increment value- Specified by:
getAutoIncrement
in interfaceContext
- Returns:
- server auto increment
-
setAutoIncrement
public void setAutoIncrement(long autoIncrement)
Description copied from interface:Context
Set server autoincrement value- Specified by:
setAutoIncrement
in interfaceContext
- Parameters:
autoIncrement
- current server autoincrement value
-
getCharset
public java.lang.String getCharset()
Description copied from interface:Context
Retrieve current charset if session state get it- Specified by:
getCharset
in interfaceContext
- Returns:
- current charset
-
setCharset
public void setCharset(java.lang.String charset)
Description copied from interface:Context
Indicate server charset change- Specified by:
setCharset
in interfaceContext
- Parameters:
charset
- server charset
-
getRedirectUrl
public java.lang.String getRedirectUrl()
Description copied from interface:Context
get redirect Url if server indicate reconnection url- Specified by:
getRedirectUrl
in interfaceContext
- Returns:
- null if no redirection required, value if so
-
canUseTransactionIsolation
public boolean canUseTransactionIsolation()
Description copied from interface:Context
Can rely on transaction_isolation or keep using deprecated tx_isolation variable- Specified by:
canUseTransactionIsolation
in interfaceContext
- Returns:
- true if you can use transaction_isolation
-
setRedirectUrl
public void setRedirectUrl(java.lang.String redirectUrl)
Description copied from interface:Context
Set server redirection url- Specified by:
setRedirectUrl
in interfaceContext
- Parameters:
redirectUrl
- redirect url
-
getConnectionTimeZone
public java.util.TimeZone getConnectionTimeZone()
Description copied from interface:Context
Get current connection timezone- Specified by:
getConnectionTimeZone
in interfaceContext
- Returns:
- connection timezone
-
setConnectionTimeZone
public void setConnectionTimeZone(java.util.TimeZone connectionTimeZone)
Description copied from interface:Context
Set current connection timezone- Specified by:
setConnectionTimeZone
in interfaceContext
- Parameters:
connectionTimeZone
- connection timezone
-
getDefaultCalendar
public java.util.Calendar getDefaultCalendar()
Description copied from interface:Context
Get calendar depending on configuration- Specified by:
getDefaultCalendar
in interfaceContext
- Returns:
- calendar
-
-