Class EntityModelBuilder


  • @MorphiaInternal
    public class EntityModelBuilder
    extends Object
    Builder for EntityModels
    Since:
    2.0
    Developer note.
    This is an internal item. Its function and presence are subject to change without warning. Its use is highly discouraged.
    • Constructor Detail

      • EntityModelBuilder

        public EntityModelBuilder​(Mapper mapper,
                                  Class<?> type)
        Create a builder
        Parameters:
        mapper - the mapper to use
        type - the entity type
    • Method Detail

      • addProperty

        public PropertyModelBuilder addProperty()
        Adds a property to the model
        Returns:
        the new PropertyModelBuilder
      • annotation

        public EntityModelBuilder annotation​(Annotation type)
        Adds an annotation
        Parameters:
        type - the annotation to add
        Returns:
        this
        Since:
        2.3
      • build

        public EntityModel build()
        Creates a new ClassModel instance based on the mapping data provided.
        Returns:
        the new instance
      • classHierarchy

        public Set<Class<?>> classHierarchy()
        Returns:
        the parent class hierarchy
        Since:
        2.2
      • discriminator

        public EntityModelBuilder discriminator​(String discriminator)
        Sets the discriminator
        Parameters:
        discriminator - the discriminator
        Returns:
        this
      • discriminator

        public String discriminator()
        Returns:
        the discriminator
      • discriminatorKey

        public EntityModelBuilder discriminatorKey​(String key)
        Sets the mapped key name to use when storing the discriminator value
        Parameters:
        key - the key to use
        Returns:
        this
      • discriminatorKey

        public String discriminatorKey()
        Returns:
        the discriminator key
      • enableDiscriminator

        public EntityModelBuilder enableDiscriminator​(boolean enabled)
        Enables or disables the use of a discriminator when serializing
        Parameters:
        enabled - true to enable the use of a discriminator
        Returns:
        this
      • getAnnotation

        @Nullable
        public <A extends Annotation> A getAnnotation​(Class<A> type)
        Type Parameters:
        A - the annotation type
        Parameters:
        type - the annotation class
        Returns:
        the annotation or null if it doesn't exist
      • getTypeData

        public TypeData<?> getTypeData​(Class<?> type,
                                       TypeData<?> suggested,
                                       Type genericType)
        Parameters:
        type -
        suggested -
        genericType -
        Returns:
        the type data for the model
      • hasAnnotation

        public boolean hasAnnotation​(Class<? extends Annotation> type)
        Parameters:
        type - the annotation class
        Returns:
        the annotation if it exists
      • idPropertyName

        @Nullable
        public String idPropertyName()
        Returns:
        the name of the id property
      • idPropertyName

        public EntityModelBuilder idPropertyName​(String name)
        Sets the name of the id property
        Parameters:
        name - the name
        Returns:
        this
      • interfaces

        public List<EntityModel> interfaces()
        Returns:
        the interfaces implemented by this model or its super types
      • isDiscriminatorEnabled

        public boolean isDiscriminatorEnabled()
        Returns:
        true if the discriminator is enabled
      • superclass

        @Nullable
        public EntityModel superclass()
        Returns:
        the super class of this type or null
      • targetType

        public Class<?> targetType()
        The target type of this model
        Returns:
        the type
        Since:
        2.3
      • targetType

        public EntityModelBuilder targetType​(Class<?> targetType)
        The target type of this model
        Parameters:
        targetType - the type
        Returns:
        this
        Since:
        2.3
      • type

        public Class<?> type()
        The type of this model
        Returns:
        the type
      • versionPropertyName

        @Nullable
        public String versionPropertyName()
        Returns:
        the name of the version property
      • versionPropertyName

        public EntityModelBuilder versionPropertyName​(String name)
        Sets the name of the version property
        Parameters:
        name - the name
        Returns:
        this
      • getCollectionName

        protected String getCollectionName()