From 40d9930b2c832628d0e067aedadbb3e057210129 Mon Sep 17 00:00:00 2001 From: Mark Pollack Date: Wed, 6 Apr 2011 16:31:45 -0400 Subject: [PATCH] DATADOC-75 - Rename setConverters(...) to addConverters(...) in MongoConverter implementations --- .../convert/MappingMongoConverter.java | 34 +++++++++++-------- .../mongodb/convert/SimpleMongoConverter.java | 5 +-- .../mongodb/SimpleMongoConverterTests.java | 2 +- .../MappingMongoConverterUnitTests.java | 4 ++- 4 files changed, 27 insertions(+), 18 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java index 49ffb6d64..af2e5753a 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/MappingMongoConverter.java @@ -27,6 +27,7 @@ import java.util.HashMap; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; import com.mongodb.BasicDBList; import com.mongodb.BasicDBObject; @@ -46,6 +47,7 @@ import org.springframework.context.expression.BeanFactoryResolver; import org.springframework.core.GenericTypeResolver; import org.springframework.core.convert.ConversionService; import org.springframework.core.convert.converter.Converter; +import org.springframework.core.convert.converter.ConverterFactory; import org.springframework.core.convert.support.ConversionServiceFactory; import org.springframework.core.convert.support.GenericConversionService; import org.springframework.data.mapping.AssociationHandler; @@ -86,24 +88,27 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext protected String defaultDatabase; public MappingMongoConverter() { - initializeConverters(); + } public MappingMongoConverter(MappingContext mappingContext) { this.mappingContext = mappingContext; - initializeConverters(); - } - - public MappingMongoConverter(MappingContext mappingContext, List> converters) { - this.mappingContext = mappingContext; - if (null != converters) { - for (Converter c : converters) { - registerConverter(c); - conversionService.addConverter(c); - } - } - initializeConverters(); } + + /** + * Add custom {@link Converter} or {@link ConverterFactory} instances to be used that will take presidence over + * metadata driven conversion between of objects to/from DBObject + * + * @param converters + */ + public void addConverters(List> converters) { + if (null != converters) { + for (Converter c : converters) { + registerConverter(c); + conversionService.addConverter(c); + } + } + } /** * Inspects the given {@link Converter} for the types it can convert and registers the pair for custom type conversion @@ -596,7 +601,8 @@ public class MappingMongoConverter implements MongoConverter, ApplicationContext } } - public void afterPropertiesSet() throws Exception { + public void afterPropertiesSet() { + initializeConverters(); } /** diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/SimpleMongoConverter.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/SimpleMongoConverter.java index 74a370496..225a00e3b 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/SimpleMongoConverter.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/convert/SimpleMongoConverter.java @@ -129,11 +129,12 @@ public class SimpleMongoConverter implements MongoConverter { } /** - * Sets custom {@link Converter} or {@link ConverterFactory} instances to be used. + * Add custom {@link Converter} or {@link ConverterFactory} instances to be used that will take presidence over + * using object traversal to convert and object to/from DBObject * * @param converters */ - public void setConverters(Set converters) { + public void addConverters(Set converters) { for (Object converter : converters) { boolean added = false; if (converter instanceof Converter) { diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java index 4ca57c3ae..68ffc9320 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/SimpleMongoConverterTests.java @@ -326,7 +326,7 @@ public class SimpleMongoConverterTests { converters.add(new LocalDateToDateConverter()); converters.add(new DateToLocalDateConverter()); - converter.setConverters(converters); + converter.addConverters(converters); AnotherPerson person = new AnotherPerson(); person.birthDate = new LocalDate(); diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java index 8b049e3a2..a91234348 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/mapping/MappingMongoConverterUnitTests.java @@ -76,7 +76,9 @@ public class MappingMongoConverterUnitTests { customSimpleTypes.add(LocalDate.class); mappingContext.setCustomSimpleTypes(customSimpleTypes); - converter = new MappingMongoConverter(mappingContext, converters); + converter = new MappingMongoConverter(mappingContext); + converter.addConverters(converters); + converter.afterPropertiesSet(); Person person = new Person(); person.birthDate = new LocalDate();