Package org.bson.codecs.pojo
Class PojoCodecProvider.Builder
- java.lang.Object
-
- org.bson.codecs.pojo.PojoCodecProvider.Builder
-
- Enclosing class:
- PojoCodecProvider
public static final class PojoCodecProvider.Builder extends Object
A Builder for the PojoCodecProvider
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description PojoCodecProvider.Builder
automatic(boolean automatic)
Sets whether the provider should automatically try to wrap aClassModel
for any class that is requested.PojoCodecProvider
build()
Creates the PojoCodecProvider with the classes or packages that configured and registered.PojoCodecProvider.Builder
conventions(List<Convention> conventions)
Sets the conventions to use when creatingClassModels
from classes or packages.PojoCodecProvider.Builder
register(Class<?>... classes)
Registers a classes with the builder for inclusion in the Provider.PojoCodecProvider.Builder
register(String... packageNames)
Registers the packages of the given classes with the builder for inclusion in the Provider.PojoCodecProvider.Builder
register(ClassModel<?>... classModels)
Registers classModels for inclusion in the Provider.PojoCodecProvider.Builder
register(PropertyCodecProvider... providers)
Registers codec providers that receive the type parameters of properties for instances encoded and decoded by aPojoCodec
handled by this provider.
-
-
-
Method Detail
-
build
public PojoCodecProvider build()
Creates the PojoCodecProvider with the classes or packages that configured and registered.- Returns:
- the Provider
- See Also:
register(Class...)
-
automatic
public PojoCodecProvider.Builder automatic(boolean automatic)
Sets whether the provider should automatically try to wrap aClassModel
for any class that is requested.Note: As Java Beans are convention based, when using automatic settings the provider should be the last provider in the registry.
- Parameters:
automatic
- whether to automatically wrapClassModels
or not.- Returns:
- this
-
conventions
public PojoCodecProvider.Builder conventions(List<Convention> conventions)
Sets the conventions to use when creatingClassModels
from classes or packages.- Parameters:
conventions
- a list of conventions- Returns:
- this
-
register
public PojoCodecProvider.Builder register(Class<?>... classes)
Registers a classes with the builder for inclusion in the Provider.Note: Uses reflection for the property mapping. If no conventions are configured on the builder the
Conventions.DEFAULT_CONVENTIONS
will be used.- Parameters:
classes
- the classes to register- Returns:
- this
-
register
public PojoCodecProvider.Builder register(ClassModel<?>... classModels)
Registers classModels for inclusion in the Provider.- Parameters:
classModels
- the classModels to register- Returns:
- this
-
register
public PojoCodecProvider.Builder register(String... packageNames)
Registers the packages of the given classes with the builder for inclusion in the Provider. This will allow classes in the given packages to mapped for use with PojoCodecProvider.Note: Uses reflection for the field mapping. If no conventions are configured on the builder the
Conventions.DEFAULT_CONVENTIONS
will be used.- Parameters:
packageNames
- the package names to register- Returns:
- this
-
register
public PojoCodecProvider.Builder register(PropertyCodecProvider... providers)
Registers codec providers that receive the type parameters of properties for instances encoded and decoded by aPojoCodec
handled by this provider.Note that you should prefer working with the
CodecRegistry
/CodecProvider
hierarchy. Providers should only be registered here if a codec needs to be created for custom container types like optionals and collections. Support for typesMap
andCollection
are built-in so explicitly handling them is not necessary.- Parameters:
providers
- property codec providers to register- Returns:
- this
- Since:
- 3.6
-
-