Class AbstractJdbiDefinitionModule
- All Implemented Interfaces:
Module
,JdbiBinder
Jdbi
instances. This is a PrivateModule
which will by default only expose the constructed Jdbi
object as
a binding. Everything configured within this module is private to the module and not exposed. This allows installation of multiple instances of modules that
extend the AbstractJdbiDefinitionModule
base class.
Each module requires a DataSource
bound using the same annotation or annotation class as used on the module constructor. If this data source is not
present, the injection process will fail.
Successful binding will expose a Jdbi
binding annotated with the same annotation or annotation class as used on the module constructor. Additional
elements defined in this module can be exposed using the exposeBinding(Class)
is called within the configureJdbi()
method.
-
Constructor Summary
ConstructorDescriptionAbstractJdbiDefinitionModule
(Annotation annotation) Create a Jdbi definition module.AbstractJdbiDefinitionModule
(Annotation annotation, Class<? extends Annotation> globalAnnotationClass) Create a Jdbi definition module with a custom annotation for element configuration.AbstractJdbiDefinitionModule
(Class<? extends Annotation> annotationClass) Create a Jdbi definition module.AbstractJdbiDefinitionModule
(Class<? extends Annotation> annotationClass, Class<? extends Annotation> globalAnnotationClass) Create a Jdbi definition module with a custom annotation for element configuration. -
Method Summary
Modifier and TypeMethodDescriptionabstract void
Override this method to configure all aspects of a Jdbi instance.final <T> Key<T>
createKey
(TypeLiteral<T> type) Creates aKey
object for aTypeLiteral
that uses the annotation or annotation class used to construct this module.final <T> Key<T>
Creates aKey
object for a class that uses the annotation or annotation class used to construct this module.final <T> void
exposeBinding
(TypeLiteral<T> type) Exposes a binding that is in module scope (without annotations) and binds it using either the annotation or annotation class and then exposes it outside the module.final <T> void
exposeBinding
(Class<T> clazz) Exposes a binding that is in module scope (without annotations) and binds it using either the annotation or annotation class and then exposes it outside the module.final <T> InternalImportBindingBuilder<T>
importBinding
(LinkedBindingBuilder<T> binder, TypeLiteral<T> type) Pulls an existing outside binding into the module scope using the specified binder.final <T> InternalImportBindingBuilder<T>
importBinding
(LinkedBindingBuilder<T> binder, Class<T> clazz) Pulls an existing outside binding into the module scope using the specified binder.final <T> InternalImportBindingBuilder<T>
importBinding
(TypeLiteral<T> type) Pulls an existing outside binding into the module scope.final <T> InternalImportBindingBuilder<T>
importBinding
(Class<T> clazz) Pulls an existing outside binding into the module scope.final <T> InternalLooseImportBindingBuilder<T>
importBindingLoosely
(LinkedBindingBuilder<T> binder, TypeLiteral<T> type) Pulls an outside binding into the module scope if it exists using the binder given.final <T> InternalLooseImportBindingBuilder<T>
importBindingLoosely
(LinkedBindingBuilder<T> binder, Class<T> clazz) Pulls an outside binding into the module scope if it exists using the binder given.final <T> InternalLooseImportBindingBuilder<T>
importBindingLoosely
(TypeLiteral<T> type) Pulls an outside binding into the module scope if it exists.final <T> InternalLooseImportBindingBuilder<T>
importBindingLoosely
(Class<T> clazz) Pulls an outside binding into the module scope if it exists.final JdbiBinder
Provides access to theJdbiBinder
instance.Methods inherited from class com.google.inject.PrivateModule
configure
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface org.jdbi.v3.guice.JdbiBinder
bindArrayType, bindCodec, bindCodec, bindCodec, bindColumnMapper, bindColumnMapper, bindColumnMapper, bindColumnMapper, bindCustomizer, bindPlugin, bindRowMapper, bindRowMapper, bindRowMapper
-
Constructor Details
-
AbstractJdbiDefinitionModule
Create a Jdbi definition module.A Jdbi definition module that uses this constructor will use the default element configuration from
AbstractJdbiConfigurationModule
s that do not use any custom annotation.- Parameters:
annotation
- The resultingJdbi
instance will be exposed using this annotation.
-
AbstractJdbiDefinitionModule
public AbstractJdbiDefinitionModule(Annotation annotation, Class<? extends Annotation> globalAnnotationClass) Create a Jdbi definition module with a custom annotation for element configuration.A Jdbi definition module that uses this constructor will use the element configuration from
AbstractJdbiConfigurationModule
s that use the same annotation as this constructor. -
AbstractJdbiDefinitionModule
Create a Jdbi definition module.A Jdbi definition module that uses this constructor will use the default element configuration from
AbstractJdbiConfigurationModule
s that do not use any custom annotation.- Parameters:
annotationClass
- The resultingJdbi
instance will be exposed using this annotation class.
-
AbstractJdbiDefinitionModule
public AbstractJdbiDefinitionModule(Class<? extends Annotation> annotationClass, Class<? extends Annotation> globalAnnotationClass) Create a Jdbi definition module with a custom annotation for element configuration.A Jdbi definition module that uses this constructor will use the element configuration from
AbstractJdbiConfigurationModule
s that use the same annotation as this constructor.
-
-
Method Details
-
configureJdbi
public abstract void configureJdbi()Override this method to configure all aspects of a Jdbi instance.@Override protected void configureJdbi() { bindPlugin().toInstance(...); bindTransformer().to(...); bindRowMapper().to(...); }
-
jdbiBinder
Provides access to theJdbiBinder
instance.Only valid when called from
configureJdbi()
.- Specified by:
jdbiBinder
in interfaceJdbiBinder
-
importBindingLoosely
Pulls an outside binding into the module scope if it exists. If it does not exist, bind a null value or a default. An outside binding uses the same annotation or annotation class as the module. -
importBindingLoosely
Pulls an outside binding into the module scope if it exists. If it does not exist, bind a null value or a default. An outside binding uses the same annotation or annotation class as the module. -
importBindingLoosely
public final <T> InternalLooseImportBindingBuilder<T> importBindingLoosely(LinkedBindingBuilder<T> binder, TypeLiteral<T> type) Pulls an outside binding into the module scope if it exists using the binder given. If it does not exist, bind a null value or a default. An outside binding uses the same annotation or annotation class as the module. -
importBindingLoosely
public final <T> InternalLooseImportBindingBuilder<T> importBindingLoosely(LinkedBindingBuilder<T> binder, Class<T> clazz) Pulls an outside binding into the module scope if it exists using the binder given. If it does not exist, bind a null value or a default. An outside binding uses the same annotation or annotation class as the module. -
importBinding
Pulls an existing outside binding into the module scope. An outside binding uses the same annotation or annotation class as the module. -
importBinding
Pulls an existing outside binding into the module scope. An outside binding uses the same annotation or annotation class as the module. -
importBinding
public final <T> InternalImportBindingBuilder<T> importBinding(LinkedBindingBuilder<T> binder, TypeLiteral<T> type) Pulls an existing outside binding into the module scope using the specified binder. An outside binding uses the same annotation or annotation class as the module. -
importBinding
public final <T> InternalImportBindingBuilder<T> importBinding(LinkedBindingBuilder<T> binder, Class<T> clazz) Pulls an existing outside binding into the module scope using the specified binder. An outside binding uses the same annotation or annotation class as the module. -
createKey
Creates aKey
object for a class that uses the annotation or annotation class used to construct this module. -
createKey
Creates aKey
object for aTypeLiteral
that uses the annotation or annotation class used to construct this module. -
exposeBinding
Exposes a binding that is in module scope (without annotations) and binds it using either the annotation or annotation class and then exposes it outside the module. -
exposeBinding
Exposes a binding that is in module scope (without annotations) and binds it using either the annotation or annotation class and then exposes it outside the module.
-