|
Spring Data MongoDB | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.springframework.data.mongodb.core.convert.AbstractMongoConverter
org.springframework.data.mongodb.core.convert.MappingMongoConverter
public class MappingMongoConverter
MongoConverter that uses a MappingContext to do sophisticated mapping of domain objects to
DBObject.
| Field Summary | |
|---|---|
protected ApplicationContext |
applicationContext
|
protected QueryMapper |
idMapper
|
protected static org.slf4j.Logger |
log
|
protected String |
mapKeyDotReplacement
|
protected MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> |
mappingContext
|
protected MongoDbFactory |
mongoDbFactory
|
protected SpelExpressionParser |
spelExpressionParser
|
protected MongoTypeMapper |
typeMapper
|
protected boolean |
useFieldAccessOnly
|
| Fields inherited from class org.springframework.data.mongodb.core.convert.AbstractMongoConverter |
|---|
conversions, conversionService, instantiators |
| Constructor Summary | |
|---|---|
MappingMongoConverter(MongoDbFactory mongoDbFactory,
MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> mappingContext)
Creates a new MappingMongoConverter given the new MongoDbFactory and MappingContext. |
|
| Method Summary | ||
|---|---|---|
protected void |
addCustomTypeKeyIfNecessary(TypeInformation<?> type,
Object value,
com.mongodb.DBObject dbObject)
Adds custom type information to the given DBObject if necessary. |
|
Object |
convertToMongoType(Object obj,
TypeInformation<?> typeInformation)
Converts the given object into one Mongo will be able to store natively but retains the type information in case the given TypeInformation differs from the given object type. |
|
protected com.mongodb.DBObject |
createCollection(Collection<?> collection,
MongoPersistentProperty property)
Writes the given Collection using the given MongoPersistentProperty information. |
|
protected com.mongodb.DBRef |
createDBRef(Object target,
DBRef dbref)
|
|
MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> |
getMappingContext()
|
|
protected Object |
getValueInternal(MongoPersistentProperty prop,
com.mongodb.DBObject dbo,
SpELExpressionEvaluator eval,
Object parent)
|
|
com.mongodb.BasicDBList |
maybeConvertList(Iterable<?> source)
|
|
protected String |
potentiallyEscapeMapKey(String source)
Potentially replaces dots in the given map key with the configured map key replacement if configured or aborts conversion if none is configured. |
|
protected String |
potentiallyUnescapeMapKey(String source)
Translates the map key replacements in the given key just read with a dot in case a map key replacement has been configured. |
|
|
read(Class<S> clazz,
com.mongodb.DBObject dbo)
|
|
protected
|
read(TypeInformation<S> type,
com.mongodb.DBObject dbo)
|
|
protected
|
read(TypeInformation<S> type,
com.mongodb.DBObject dbo,
Object parent)
|
|
protected Map<Object,Object> |
readMap(TypeInformation<?> type,
com.mongodb.DBObject dbObject,
Object parent)
Reads the given DBObject into a Map. will recursively resolve nested Maps as well. |
|
void |
setApplicationContext(ApplicationContext applicationContext)
|
|
void |
setMapKeyDotReplacement(String mapKeyDotReplacement)
Configure the characters dots potentially contained in a Map shall be replaced with. |
|
void |
setTypeMapper(MongoTypeMapper typeMapper)
Configures the MongoTypeMapper to be used to add type information to DBObjects created by the
converter and how to lookup type information from DBObjects when reading them. |
|
void |
setUseFieldAccessOnly(boolean useFieldAccessOnly)
Configures whether to use field access only for entity mapping. |
|
com.mongodb.DBRef |
toDBRef(Object object,
MongoPersistentProperty referingProperty)
Creates a DBRef to refer to the given object. |
|
protected
|
unwrapList(com.mongodb.BasicDBList dbList,
TypeInformation<T> targetType)
|
|
void |
write(Object obj,
com.mongodb.DBObject dbo)
Root entry method into write conversion. |
|
protected void |
writeInternal(Object obj,
com.mongodb.DBObject dbo,
MongoPersistentEntity<?> entity)
|
|
protected void |
writeInternal(Object obj,
com.mongodb.DBObject dbo,
TypeInformation<?> typeHint)
Internal write conversion method which should be used for nested invocations. |
|
protected com.mongodb.DBObject |
writeMapInternal(Map<Object,Object> obj,
com.mongodb.DBObject dbo,
TypeInformation<?> propertyType)
Writes the given Map to the given DBObject considering the given TypeInformation. |
|
protected void |
writePropertyInternal(Object obj,
com.mongodb.DBObject dbo,
MongoPersistentProperty prop)
|
|
| Methods inherited from class org.springframework.data.mongodb.core.convert.AbstractMongoConverter |
|---|
afterPropertiesSet, convertToMongoType, getConversionService, setCustomConversions, setInstantiators |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
protected static final org.slf4j.Logger log
protected final MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> mappingContext
protected final SpelExpressionParser spelExpressionParser
protected final MongoDbFactory mongoDbFactory
protected final QueryMapper idMapper
protected ApplicationContext applicationContext
protected boolean useFieldAccessOnly
protected MongoTypeMapper typeMapper
protected String mapKeyDotReplacement
| Constructor Detail |
|---|
public MappingMongoConverter(MongoDbFactory mongoDbFactory,
MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> mappingContext)
MappingMongoConverter given the new MongoDbFactory and MappingContext.
mongoDbFactory - must not be null.mappingContext - must not be null.| Method Detail |
|---|
public void setTypeMapper(MongoTypeMapper typeMapper)
MongoTypeMapper to be used to add type information to DBObjects created by the
converter and how to lookup type information from DBObjects when reading them. Uses a
DefaultMongoTypeMapper by default. Setting this to null will reset the TypeMapper to the
default one.
typeMapper - the typeMapper to setpublic void setMapKeyDotReplacement(String mapKeyDotReplacement)
Map shall be replaced with. By default we don't do
any translation but rather reject a Map with keys containing dots causing the conversion for the entire
object to fail. If further customization of the translation is needed, have a look at
potentiallyEscapeMapKey(String) as well as potentiallyUnescapeMapKey(String).
mapKeyDotReplacement - the mapKeyDotReplacement to setpublic MappingContext<? extends MongoPersistentEntity<?>,MongoPersistentProperty> getMappingContext()
getMappingContext in interface EntityConverter<MongoPersistentEntity<?>,MongoPersistentProperty,Object,com.mongodb.DBObject>public void setUseFieldAccessOnly(boolean useFieldAccessOnly)
MongoConverter to not go through getters or setters even if they are present for getting and setting
property values.
useFieldAccessOnly -
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException
setApplicationContext in interface ApplicationContextAwareBeansException
public <S> S read(Class<S> clazz,
com.mongodb.DBObject dbo)
read in interface EntityReader<Object,com.mongodb.DBObject>
protected <S> S read(TypeInformation<S> type,
com.mongodb.DBObject dbo)
protected <S> S read(TypeInformation<S> type,
com.mongodb.DBObject dbo,
Object parent)
public com.mongodb.DBRef toDBRef(Object object,
MongoPersistentProperty referingProperty)
MongoWriterDBRef to refer to the given object.
toDBRef in interface MongoWriter<Object>object - the object to create a DBRef to link to. The object's type has to carry an id attribute.referingProperty - the client-side property referring to the object which might carry additional metadata for
the DBRef object to create. Can be null.
public void write(Object obj,
com.mongodb.DBObject dbo)
DBObject. Shouldn't be called for
nested conversions.
write in interface EntityWriter<Object,com.mongodb.DBObject>org.springframework.data.mongodb.core.core.convert.MongoWriter#write(java.lang.Object, com.mongodb.DBObject)
protected void writeInternal(Object obj,
com.mongodb.DBObject dbo,
TypeInformation<?> typeHint)
obj - dbo -
protected void writeInternal(Object obj,
com.mongodb.DBObject dbo,
MongoPersistentEntity<?> entity)
protected void writePropertyInternal(Object obj,
com.mongodb.DBObject dbo,
MongoPersistentProperty prop)
protected com.mongodb.DBObject createCollection(Collection<?> collection,
MongoPersistentProperty property)
Collection using the given MongoPersistentProperty information.
collection - must not be null.property - must not be null.
protected com.mongodb.DBObject writeMapInternal(Map<Object,Object> obj,
com.mongodb.DBObject dbo,
TypeInformation<?> propertyType)
Map to the given DBObject considering the given TypeInformation.
obj - must not be null.dbo - must not be null.propertyType - must not be null.
protected String potentiallyEscapeMapKey(String source)
source -
setMapKeyDotReplacement(String)protected String potentiallyUnescapeMapKey(String source)
source -
protected void addCustomTypeKeyIfNecessary(TypeInformation<?> type,
Object value,
com.mongodb.DBObject dbObject)
DBObject if necessary. That is if the value is not the same as
the one given. This is usually the case if you store a subtype of the actual declared type of the property.
type - value - must not be null.dbObject - must not be null.
protected com.mongodb.DBRef createDBRef(Object target,
DBRef dbref)
protected Object getValueInternal(MongoPersistentProperty prop,
com.mongodb.DBObject dbo,
SpELExpressionEvaluator eval,
Object parent)
protected Map<Object,Object> readMap(TypeInformation<?> type,
com.mongodb.DBObject dbObject,
Object parent)
DBObject into a Map. will recursively resolve nested Maps as well.
type - the Map TypeInformation to be used to unmarshall this DBObject.dbObject -
protected <T> List<?> unwrapList(com.mongodb.BasicDBList dbList,
TypeInformation<T> targetType)
public Object convertToMongoType(Object obj,
TypeInformation<?> typeInformation)
MongoWriterTypeInformation differs from the given object type.
convertToMongoType in interface MongoWriter<Object>obj - can be null.typeInformation - can be null.
public com.mongodb.BasicDBList maybeConvertList(Iterable<?> source)
|
Spring Data MongoDB | |||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||