Package dev.morphia.mapping
Class Mapper
- java.lang.Object
-
- dev.morphia.mapping.Mapper
-
public class Mapper extends Object
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
-
Field Summary
Fields Modifier and Type Field Description static String
IGNORED_FIELDNAME
Special name that can never be used.
-
Constructor Summary
Constructors Constructor Description Mapper(Datastore datastore, org.bson.codecs.configuration.CodecRegistry codecRegistry, MapperOptions options)
Creates a Mapper with the given options.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description void
addInterceptor(EntityInterceptor ei)
Adds anEntityInterceptor
com.mongodb.client.MongoCollection
enforceWriteConcern(com.mongodb.client.MongoCollection collection, Class type)
Updates a collection to use a specific WriteConcern<T> T
fromDocument(Class<T> type, org.bson.Document document)
Converts a Document back to a type-safe java object (POJO)Class
getClass(String discriminator)
<T> Class<T>
getClass(org.bson.Document document)
Gets the class as defined by any discriminator fieldList<EntityModel>
getClassesMappedToCollection(String collection)
Finds all the types mapped to a named collection<T> Class<T>
getClassFromCollection(String collection)
Looks up the class mapped to a named collection.org.bson.codecs.configuration.CodecRegistry
getCodecRegistry()
<T> com.mongodb.client.MongoCollection<T>
getCollection(Class<T> type)
DiscriminatorLookup
getDiscriminatorLookup()
EntityModel
getEntityModel(Class type)
Gets theEntityModel
for the object (type).Object
getId(Object entity)
Gets the ID value for an entityCollection<EntityInterceptor>
getInterceptors()
Gets list ofEntityInterceptor
s<T> Key<T>
getKey(T entity)
Deprecated, for removal: This API element is subject to removal in a future version.<T> Key<T>
getKey(T entity, String collection)
Deprecated, for removal: This API element is subject to removal in a future version.List<EntityModel>
getMappedEntities()
MapperOptions
getOptions()
com.mongodb.WriteConcern
getWriteConcern(Class clazz)
Gets the write concern for entity or returns the default write concern for this datastoreboolean
hasInterceptors()
<T> boolean
isMappable(Class<T> type)
Checks if a type is mappable or notboolean
isMapped(Class c)
Checks to see if a Class has been mapped.List<EntityModel>
map(Class... entityClasses)
Maps a set of classesList<EntityModel>
map(List<Class> classes)
Maps a set of classes<A extends Annotation>
EntityModelmapExternal(A annotation, Class type)
Maps an external class.void
mapPackage(String packageName)
Tries to map all classes in the package specified.void
mapPackageFromClass(Class clazz)
Maps all the classes found in the package to which the given class belongs.<T> void
refresh(T entity)
Refreshes an entity with the current state in the database.void
setOptions(MapperOptions options)
Deprecated, for removal: This API element is subject to removal in a future version.no longer usedorg.bson.Document
toDocument(Object entity)
Converts an entity (POJO) to a Document.String
updateCollection(Key key)
Deprecated, for removal: This API element is subject to removal in a future version.void
updateQueryWithDiscriminators(EntityModel model, org.bson.Document query)
Updates a query with any discriminators from subtypes if polymorphic queries are enabled
-
-
-
Field Detail
-
IGNORED_FIELDNAME
public static final String IGNORED_FIELDNAME
Special name that can never be used. Used as default for some fields to indicate default state.- See Also:
- Constant Field Values
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
-
Constructor Detail
-
Mapper
public Mapper(Datastore datastore, org.bson.codecs.configuration.CodecRegistry codecRegistry, MapperOptions options)
Creates a Mapper with the given options.- Parameters:
datastore
- the datastore to usecodecRegistry
- the codec registryoptions
- the options to use
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
-
Method Detail
-
addInterceptor
public void addInterceptor(EntityInterceptor ei)
Adds anEntityInterceptor
- Parameters:
ei
- the interceptor to add
-
getEntityModel
public EntityModel getEntityModel(Class type)
Gets theEntityModel
for the object (type). If it isn't mapped, create a new class and cache it (without validating).- Parameters:
type
- the type to process- Returns:
- the EntityModel for the object given
-
map
public List<EntityModel> map(Class... entityClasses)
Maps a set of classes- Parameters:
entityClasses
- the classes to map- Returns:
- the EntityModel references
-
enforceWriteConcern
public com.mongodb.client.MongoCollection enforceWriteConcern(com.mongodb.client.MongoCollection collection, Class type)
Updates a collection to use a specific WriteConcern- Parameters:
collection
- the collection to updatetype
- the entity type- Returns:
- the updated collection
-
fromDocument
public <T> T fromDocument(Class<T> type, org.bson.Document document)
Converts a Document back to a type-safe java object (POJO)- Type Parameters:
T
- the type of the entity- Parameters:
type
- the target typedocument
- the Document containing the document from mongodb- Returns:
- the new entity
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getClass
public <T> Class<T> getClass(org.bson.Document document)
Gets the class as defined by any discriminator field- Type Parameters:
T
- the class type- Parameters:
document
- the document to check- Returns:
- the class reference. might be null
-
getClass
public Class getClass(String discriminator)
- Parameters:
discriminator
- the lookup value- Returns:
- the class mapped to this discrimiator value
-
getClassFromCollection
public <T> Class<T> getClassFromCollection(String collection)
Looks up the class mapped to a named collection.- Type Parameters:
T
- the class type- Parameters:
collection
- the collection name- Returns:
- the Class mapped to this collection name
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getClassesMappedToCollection
public List<EntityModel> getClassesMappedToCollection(String collection)
Finds all the types mapped to a named collection- Parameters:
collection
- the collection to check- Returns:
- the mapped types
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getCodecRegistry
public org.bson.codecs.configuration.CodecRegistry getCodecRegistry()
- Returns:
- the codec registry
-
getCollection
public <T> com.mongodb.client.MongoCollection<T> getCollection(Class<T> type)
- Type Parameters:
T
- the class type- Parameters:
type
- the type look up- Returns:
- the collection mapped for this class
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getDiscriminatorLookup
public DiscriminatorLookup getDiscriminatorLookup()
- Returns:
- the DiscriminatorLookup in use
-
map
public List<EntityModel> map(List<Class> classes)
Maps a set of classes- Parameters:
classes
- the classes to map- Returns:
- the list of mapped classes
-
getId
public Object getId(Object entity)
Gets the ID value for an entity- Parameters:
entity
- the entity to process- Returns:
- the ID value
-
getInterceptors
public Collection<EntityInterceptor> getInterceptors()
Gets list ofEntityInterceptor
s- Returns:
- the Interceptors
-
getKey
@Deprecated(since="2.0", forRemoval=true) public <T> Key<T> getKey(T entity)
Deprecated, for removal: This API element is subject to removal in a future version.Gets the Key for an entity- Type Parameters:
T
- the type of the entity- Parameters:
entity
- the entity to process- Returns:
- the Key
-
getKey
@Deprecated(since="2.0", forRemoval=true) public <T> Key<T> getKey(T entity, String collection)
Deprecated, for removal: This API element is subject to removal in a future version.Gets the Key for an entity and a specific collection- Type Parameters:
T
- the type of the entity- Parameters:
entity
- the entity to processcollection
- the collection to use in the Key rather than the mapped collection as defined on the entity's class- Returns:
- the Key
-
getMappedEntities
public List<EntityModel> getMappedEntities()
- Returns:
- collection of EntityModels
-
getOptions
public MapperOptions getOptions()
- Returns:
- the options used by this Mapper
-
setOptions
@Deprecated(since="2.0", forRemoval=true) public void setOptions(MapperOptions options)
Deprecated, for removal: This API element is subject to removal in a future version.no longer usedSets the options this Mapper should use- Parameters:
options
- the options to use
-
getWriteConcern
public com.mongodb.WriteConcern getWriteConcern(Class clazz)
Gets the write concern for entity or returns the default write concern for this datastore- Parameters:
clazz
- the class to use when looking up the WriteConcern- Returns:
- the write concern for the type
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
hasInterceptors
public boolean hasInterceptors()
- Returns:
- true if there are global interceptors defined
-
isMappable
public <T> boolean isMappable(Class<T> type)
Checks if a type is mappable or not- Type Parameters:
T
- the type- Parameters:
type
- the class to check- Returns:
- true if the type is mappable
-
isMapped
public boolean isMapped(Class c)
Checks to see if a Class has been mapped.- Parameters:
c
- the Class to check- Returns:
- true if the Class has been mapped
-
mapExternal
public <A extends Annotation> EntityModel mapExternal(A annotation, Class type)
Maps an external class. This is intended for use on types needed in a system but come from an external source where the more traditional approach of decorating the type in source with Morphia annotations is not possible.- Type Parameters:
A
- the annotation to apply. Currently only@Embedded
is supported- Parameters:
annotation
- the annotation to apply. might be null.type
- the type to map- Returns:
- the list of mapped classes
- Since:
- 2.1
- See Also:
EmbeddedBuilder
Developer note.This is an experimental item. Its function and presence are subject to change. Feedback on features and usability extremely welcome.
-
mapPackage
public void mapPackage(String packageName)
Tries to map all classes in the package specified.- Parameters:
packageName
- the name of the package to process
-
mapPackageFromClass
public void mapPackageFromClass(Class clazz)
Maps all the classes found in the package to which the given class belongs.- Parameters:
clazz
- the class to use when trying to find others to map
-
refresh
public <T> void refresh(T entity)
Refreshes an entity with the current state in the database.- Type Parameters:
T
- the entity type- Parameters:
entity
- the entity to refresh
-
toDocument
public org.bson.Document toDocument(Object entity)
Converts an entity (POJO) to a Document. A special field will be added to keep track of the class type.- Parameters:
entity
- The POJO- Returns:
- the Document
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
updateCollection
@Deprecated(since="2.0", forRemoval=true) public String updateCollection(Key key)
Deprecated, for removal: This API element is subject to removal in a future version.Updates the collection value on a Key with the mapped value on the Key's type Class- Parameters:
key
- the Key to update- Returns:
- the collection name on the Key
-
updateQueryWithDiscriminators
public void updateQueryWithDiscriminators(EntityModel model, org.bson.Document query)
Updates a query with any discriminators from subtypes if polymorphic queries are enabled- Parameters:
model
- the query modelquery
- the query document
-
-