Module is.codion.framework.db.core
Package is.codion.framework.db
Interface EntityConnectionProvider
- All Superinterfaces:
AutoCloseable
- All Known Subinterfaces:
HttpEntityConnectionProvider
,LocalEntityConnectionProvider
,RemoteEntityConnectionProvider
- All Known Implementing Classes:
AbstractEntityConnectionProvider
Specifies a class responsible for providing a single
EntityConnection
instance.
connection()
is guaranteed to return a healthy connection or throw an exception.
A factory for EntityConnectionProviders based on system properties.- See Also:
-
Nested Class Summary
Modifier and TypeInterfaceDescriptionstatic interface
EntityConnectionProvider.Builder<T extends EntityConnectionProvider,
B extends EntityConnectionProvider.Builder<T, B>> Builds aEntityConnectionProvider
instances -
Field Summary
Modifier and TypeFieldDescriptionstatic final PropertyValue<String>
Specifies whether the client should connect locally, via rmi or http, accepted values: local, remote, http Value type: String Default value:CONNECTION_TYPE_LOCAL
static final PropertyValue<DomainType>
Specifies the domain type required for a client connection Value type: is.codion.framework.domain.DomainType Default value: nullstatic final String
Indicates a http database connectionstatic final String
Indicates a local database connectionstatic final String
Indicates a remote database connection -
Method Summary
Modifier and TypeMethodDescriptionstatic EntityConnectionProvider.Builder<?,
?> builder()
clientId()
void
close()
Closes the underlying connection and performs cleanup if required<T extends EntityConnection>
TProvides a EntityConnection object, is responsible for returning a healthy EntityConnection object, that is, it must reconnect an invalid connection whether remotely or locallyReturns a String specifying the type of connection provided by this connection providerboolean
entities()
Returns the domain entities this connection is based onuser()
-
Field Details
-
CONNECTION_TYPE_LOCAL
Indicates a local database connection- See Also:
-
CONNECTION_TYPE_REMOTE
Indicates a remote database connection- See Also:
-
CONNECTION_TYPE_HTTP
Indicates a http database connection- See Also:
-
CLIENT_DOMAIN_TYPE
Specifies the domain type required for a client connection- Value type: is.codion.framework.domain.DomainType
- Default value: null
-
CLIENT_CONNECTION_TYPE
Specifies whether the client should connect locally, via rmi or http, accepted values: local, remote, http- Value type: String
- Default value:
CONNECTION_TYPE_LOCAL
-
-
Method Details
-
entities
Entities entities()Returns the domain entities this connection is based on- Returns:
- the underlying domain entities
-
connection
Provides a EntityConnection object, is responsible for returning a healthy EntityConnection object, that is, it must reconnect an invalid connection whether remotely or locally- Type Parameters:
T
- the expected EntityConnection type- Returns:
- a EntityConnection instance
-
connectionType
String connectionType()Returns a String specifying the type of connection provided by this connection provider- Returns:
- a String specifying the type of connection, e.g. "local" or "remote"
-
description
String description()- Returns:
- a short description of the database provider
-
connectionValid
boolean connectionValid()- Returns:
- true if a connection has been establised and the connection is in a valid state
-
connected
Observer<EntityConnection> connected()- Returns:
- an observer notified when a connection is established
-
close
void close()Closes the underlying connection and performs cleanup if required- Specified by:
close
in interfaceAutoCloseable
- See Also:
-
user
User user()- Returns:
- the user used by this connection provider
-
domainType
DomainType domainType()- Returns:
- the domain type
-
clientId
UUID clientId()- Returns:
- the UUID identifying this client connection
-
clientTypeId
String clientTypeId()- Returns:
- the String identifying the client type for this connection provider
-
clientVersion
Version clientVersion()- Returns:
- the client version
-
builder
- Returns:
- an unconfigured
EntityConnectionProvider.Builder
instance, based on theCLIENT_CONNECTION_TYPE
configuration value - Throws:
IllegalStateException
- in case the required connection provider builder is not available on the classpath- See Also:
-