Package dev.morphia.mapping
Class Mapper
- java.lang.Object
-
- dev.morphia.mapping.Mapper
-
@MorphiaInternal 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 StringIGNORED_FIELDNAMESpecial name that can never be used.static List<Class<? extends Annotation>>MAPPING_ANNOTATIONS
-
Constructor Summary
Constructors Constructor Description Mapper(MapperOptions options)Creates a Mapper with the given options.
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidaddInterceptor(EntityInterceptor ei)Adds anEntityInterceptorMongoCollectionenforceWriteConcern(MongoCollection collection, Class type)Updates a collection to use a specific WriteConcernPropertyModelfindIdProperty(Class<?> type)ClassgetClass(String discriminator)<T> Class<T>getClass(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.DiscriminatorLookupgetDiscriminatorLookup()EntityModelgetEntityModel(Class type)Gets theEntityModelfor the object (type).ObjectgetId(Object entity)Gets the ID value for an entityCollection<EntityInterceptor>getInterceptors()Gets list ofEntityInterceptors<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()MapperOptionsgetOptions()WriteConcerngetWriteConcern(Class clazz)Gets the write concern for entity or returns the default write concern for this datastorebooleanhasInterceptors()<T> booleanisMappable(Class<T> type)Checks if a type is mappable or notbooleanisMapped(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 classesvoidmapPackage(String packageName)Tries to map all classes in the package specified.voidmapPackageFromClass(Class clazz)Maps all the classes found in the package to which the given class belongs.EntityModelregister(EntityModel entityModel)voidsetOptions(MapperOptions options)Deprecated, for removal: This API element is subject to removal in a future version.no longer usedStringupdateCollection(Key key)Deprecated, for removal: This API element is subject to removal in a future version.voidupdateQueryWithDiscriminators(EntityModel model, Document query)Updates a query with any discriminators from subtypes if polymorphic queries are enabled
-
-
-
Field Detail
-
IGNORED_FIELDNAME
@MorphiaInternal 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.
-
MAPPING_ANNOTATIONS
@MorphiaInternal public static final List<Class<? extends Annotation>> MAPPING_ANNOTATIONS
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
@MorphiaInternal public Mapper(MapperOptions options)
Creates a Mapper with the given options.- Parameters:
options- 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
-
enforceWriteConcern
public MongoCollection enforceWriteConcern(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
-
findIdProperty
@MorphiaInternal public PropertyModel findIdProperty(Class<?> type)
- Parameters:
type- the class- Returns:
- the id property model
- Since:
- 2.2
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
getClass
@Nullable public <T> Class<T> getClass(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
@MorphiaInternal 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
@MorphiaInternal 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.
-
getDiscriminatorLookup
public DiscriminatorLookup getDiscriminatorLookup()
- Returns:
- the DiscriminatorLookup in use
-
getEntityModel
public EntityModel getEntityModel(Class type)
Gets theEntityModelfor 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
-
getId
@Nullable public Object getId(@Nullable 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 ofEntityInterceptors- Returns:
- the Interceptors
-
getKey
@Nullable @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
@Nullable @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
@Nullable public 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
-
map
public List<EntityModel> map(Class... entityClasses)
Maps a set of classes- Parameters:
entityClasses- the classes to map- Returns:
- the EntityModel references
-
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
-
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
-
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, Document query)
Updates a query with any discriminators from subtypes if polymorphic queries are enabled- Parameters:
model- the query modelquery- the query document
-
register
@MorphiaInternal public EntityModel register(EntityModel entityModel)
- Parameters:
entityModel- the model to register- Returns:
- the model
- Since:
- 2.3
Developer note.This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
-
-