Added functionality to add customConverters. (#1886)

* Added functionality to add customConverters.

Added functionality to register custom converters in the list + cleaned up the code a little and.

* Review chages.

Function name changed and restored to old implementation

* Documentation Changes.
This commit is contained in:
Vipul Gupta
2024-01-12 22:58:57 +05:30
committed by mikereiche
parent 5eea30e4da
commit 8fdb9a658f

View File

@@ -428,6 +428,7 @@ public abstract class AbstractCouchbaseConfiguration {
* and {@link #couchbaseMappingContext(CustomConversions)}.
*
* @param cryptoManager
* @param objectMapper
* @return must not be {@literal null}.
*/
public CustomConversions customConversions(CryptoManager cryptoManager, ObjectMapper objectMapper) {
@@ -437,6 +438,7 @@ public abstract class AbstractCouchbaseConfiguration {
newConverters.add(new IntegerToEnumConverterFactory(getObjectMapper()));
newConverters.add(new StringToEnumConverterFactory(getObjectMapper()));
newConverters.add(new BooleanToEnumConverterFactory(getObjectMapper()));
additionalConverters(newConverters);
CustomConversions customConversions = CouchbaseCustomConversions.create(configurationAdapter -> {
SimplePropertyValueConversions valueConversions = new SimplePropertyValueConversions();
valueConversions.setConverterFactory(
@@ -449,6 +451,13 @@ public abstract class AbstractCouchbaseConfiguration {
return customConversions;
}
/**
* This should be overridden in order to update the {@link #customConversions(CryptoManager cryptoManager, ObjectMapper objectMapper)} List
*/
protected void additionalConverters(List<Object> converters) {
// NO_OP
}
public static Map<Class<? extends Annotation>, Class<?>> annotationToConverterMap() {
Map<Class<? extends Annotation>, Class<?>> map = new HashMap();
map.put(Encrypted.class, CryptoConverter.class);