Class 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 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.
      • MAPPING_ANNOTATIONS

        public static final List<Class<? extends Annotation>> MAPPING_ANNOTATIONS
    • Constructor Detail

      • Mapper

        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

      • 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 update
        type - the entity type
        Returns:
        the updated collection
      • findIdProperty

        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​(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.
      • getDiscriminatorLookup

        public DiscriminatorLookup getDiscriminatorLookup()
        Returns:
        the DiscriminatorLookup in use
      • getEntityModel

        public EntityModel getEntityModel​(Class type)
        Gets the EntityModel 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
      • 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
      • 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 process
        collection - 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 used
        Sets the options this Mapper should use
        Parameters:
        options - the options to use
      • getWriteConcern

        @Nullable
        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
      • 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,
                                                  org.bson.Document query)
        Updates a query with any discriminators from subtypes if polymorphic queries are enabled
        Parameters:
        model - the query model
        query - the query document
      • register

        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.