Class AbstractEntityTuplizer

java.lang.Object
org.hibernate.tuple.entity.AbstractEntityTuplizer
All Implemented Interfaces:
EntityTuplizer, Tuplizer
Direct Known Subclasses:
Dom4jEntityTuplizer, DynamicMapEntityTuplizer, PojoEntityTuplizer

public abstract class AbstractEntityTuplizer extends Object implements EntityTuplizer
Support for tuplizers relating to entities.
  • Field Details

    • getters

      protected final Getter[] getters
    • setters

      protected final Setter[] setters
    • propertySpan

      protected final int propertySpan
    • hasCustomAccessors

      protected final boolean hasCustomAccessors
  • Constructor Details

    • AbstractEntityTuplizer

      public AbstractEntityTuplizer(EntityMetamodel entityMetamodel, PersistentClass mappingInfo)
      Constructs a new AbstractEntityTuplizer instance.
      Parameters:
      entityMetamodel - The "interpreted" information relating to the mapped entity.
      mappingInfo - The parsed "raw" mapping data relating to the given entity.
  • Method Details

    • getIdentifierMapperType

      public Type getIdentifierMapperType()
    • buildPropertyGetter

      protected abstract Getter buildPropertyGetter(Property mappedProperty, PersistentClass mappedEntity)
      Build an appropriate Getter for the given property.
      Parameters:
      mappedProperty - The property to be accessed via the built Getter.
      mappedEntity - The entity information regarding the mapped entity owning this property.
      Returns:
      An appropriate Getter instance.
    • buildPropertySetter

      protected abstract Setter buildPropertySetter(Property mappedProperty, PersistentClass mappedEntity)
      Build an appropriate Setter for the given property.
      Parameters:
      mappedProperty - The property to be accessed via the built Setter.
      mappedEntity - The entity information regarding the mapped entity owning this property.
      Returns:
      An appropriate Setter instance.
    • buildInstantiator

      protected abstract Instantiator buildInstantiator(PersistentClass mappingInfo)
      Build an appropriate Instantiator for the given mapped entity.
      Parameters:
      mappingInfo - The mapping information regarding the mapped entity.
      Returns:
      An appropriate Instantiator instance.
    • buildProxyFactory

      protected abstract ProxyFactory buildProxyFactory(PersistentClass mappingInfo, Getter idGetter, Setter idSetter)
      Build an appropriate ProxyFactory for the given mapped entity.
      Parameters:
      mappingInfo - The mapping information regarding the mapped entity.
      idGetter - The constructed Getter relating to the entity's id property.
      idSetter - The constructed Setter relating to the entity's id property.
      Returns:
      An appropriate ProxyFactory instance.
    • getEntityName

      protected String getEntityName()
      Retreives the defined entity-name for the tuplized entity.
      Returns:
      The entity-name.
    • getSubclassEntityNames

      protected Set getSubclassEntityNames()
      Retrieves the defined entity-names for any subclasses defined for this entity.
      Returns:
      Any subclass entity-names.
    • getIdentifier

      public Serializable getIdentifier(Object entity) throws HibernateException
      Description copied from interface: EntityTuplizer
      Extract the identifier value from the given entity.
      Specified by:
      getIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity from which to extract the identifier value.
      Returns:
      The identifier value.
      Throws:
      HibernateException - If the entity does not define an identifier property, or an error occurs accessing its value.
    • getIdentifier

      public Serializable getIdentifier(Object entity, SessionImplementor session)
      Description copied from interface: EntityTuplizer
      Extract the identifier value from the given entity.
      Specified by:
      getIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity from which to extract the identifier value.
      session - The session from which is requests originates
      Returns:
      The identifier value.
    • setIdentifier

      public void setIdentifier(Object entity, Serializable id) throws HibernateException
      Inject the identifier value into the given entity.

      Has no effect if the entity does not define an identifier property
      Specified by:
      setIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity to inject with the identifier value.
      id - The value to be injected as the identifier.
      Throws:
      HibernateException
    • setIdentifier

      public void setIdentifier(Object entity, Serializable id, SessionImplementor session)
      Inject the identifier value into the given entity.

      Has no effect if the entity does not define an identifier property
      Specified by:
      setIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity to inject with the identifier value.
      id - The value to be injected as the identifier.
      session - The session from which is requests originates
    • resetIdentifier

      public void resetIdentifier(Object entity, Serializable currentId, Object currentVersion)
      Inject the given identifier and version into the entity, in order to "roll back" to their original values.
      Specified by:
      resetIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity for which to reset the id/version values
      currentId - The identifier value to inject into the entity.
      currentVersion - The version value to inject into the entity.
    • resetIdentifier

      public void resetIdentifier(Object entity, Serializable currentId, Object currentVersion, SessionImplementor session)
      Inject the given identifier and version into the entity, in order to "roll back" to their original values.
      Specified by:
      resetIdentifier in interface EntityTuplizer
      Parameters:
      entity - The entity for which to reset the id/version values
      currentId - The identifier value to inject into the entity.
      currentVersion - The version value to inject into the entity.
      session - The session from which the request originated
    • getVersion

      public Object getVersion(Object entity) throws HibernateException
      Description copied from interface: EntityTuplizer
      Extract the value of the version property from the given entity.
      Specified by:
      getVersion in interface EntityTuplizer
      Parameters:
      entity - The entity from which to extract the version value.
      Returns:
      The value of the version property, or null if not versioned.
      Throws:
      HibernateException
    • shouldGetAllProperties

      protected boolean shouldGetAllProperties(Object entity)
    • getPropertyValues

      public Object[] getPropertyValues(Object entity) throws HibernateException
      Description copied from interface: Tuplizer
      Extract the current values contained on the given entity.
      Specified by:
      getPropertyValues in interface Tuplizer
      Parameters:
      entity - The entity from which to extract values.
      Returns:
      The current property values.
      Throws:
      HibernateException
    • getPropertyValuesToInsert

      public Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session) throws HibernateException
      Description copied from interface: EntityTuplizer
      Extract the values of the insertable properties of the entity (including backrefs)
      Specified by:
      getPropertyValuesToInsert in interface EntityTuplizer
      Parameters:
      entity - The entity from which to extract.
      mergeMap - a map of instances being merged to merged instances
      session - The session in which the resuest is being made.
      Returns:
      The insertable property values.
      Throws:
      HibernateException
    • getPropertyValue

      public Object getPropertyValue(Object entity, int i) throws HibernateException
      Description copied from interface: Tuplizer
      Extract the value of a particular property from the given entity.
      Specified by:
      getPropertyValue in interface Tuplizer
      Parameters:
      entity - The entity from which to extract the property value.
      i - The index of the property for which to extract the value.
      Returns:
      The current value of the given property on the given entity.
      Throws:
      HibernateException
    • getPropertyValue

      public Object getPropertyValue(Object entity, String propertyPath) throws HibernateException
      Description copied from interface: EntityTuplizer
      Extract the value of a particular property from the given entity.
      Specified by:
      getPropertyValue in interface EntityTuplizer
      Parameters:
      entity - The entity from which to extract the property value.
      propertyPath - The name of the property for which to extract the value.
      Returns:
      The current value of the given property on the given entity.
      Throws:
      HibernateException
    • getComponentValue

      protected Object getComponentValue(ComponentType type, Object component, String propertyPath)
      Extract a component property value.
      Parameters:
      type - The component property types.
      component - The component instance itself.
      propertyPath - The property path for the property to be extracted.
      Returns:
      The property value extracted.
    • setPropertyValues

      public void setPropertyValues(Object entity, Object[] values) throws HibernateException
      Description copied from interface: Tuplizer
      Inject the given values into the given entity.
      Specified by:
      setPropertyValues in interface Tuplizer
      Parameters:
      entity - The entity.
      values - The values to be injected.
      Throws:
      HibernateException
    • setPropertyValue

      public void setPropertyValue(Object entity, int i, Object value) throws HibernateException
      Description copied from interface: EntityTuplizer
      Inject the value of a particular property.
      Specified by:
      setPropertyValue in interface EntityTuplizer
      Parameters:
      entity - The entity into which to inject the value.
      i - The property's index.
      value - The property value to inject.
      Throws:
      HibernateException
    • setPropertyValue

      public void setPropertyValue(Object entity, String propertyName, Object value) throws HibernateException
      Description copied from interface: EntityTuplizer
      Inject the value of a particular property.
      Specified by:
      setPropertyValue in interface EntityTuplizer
      Parameters:
      entity - The entity into which to inject the value.
      propertyName - The name of the property.
      value - The property value to inject.
      Throws:
      HibernateException
    • instantiate

      public final Object instantiate(Serializable id) throws HibernateException
      Description copied from interface: EntityTuplizer
      Create an entity instance initialized with the given identifier.
      Specified by:
      instantiate in interface EntityTuplizer
      Parameters:
      id - The identifier value for the entity to be instantiated.
      Returns:
      The instantiated entity.
      Throws:
      HibernateException
    • instantiate

      public final Object instantiate(Serializable id, SessionImplementor session)
      Description copied from interface: EntityTuplizer
      Create an entity instance initialized with the given identifier.
      Specified by:
      instantiate in interface EntityTuplizer
      Parameters:
      id - The identifier value for the entity to be instantiated.
      session - The session from which is requests originates
      Returns:
      The instantiated entity.
    • instantiate

      public final Object instantiate() throws HibernateException
      Description copied from interface: Tuplizer
      Generate a new, empty entity.
      Specified by:
      instantiate in interface Tuplizer
      Returns:
      The new, empty entity instance.
      Throws:
      HibernateException
    • afterInitialize

      public void afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
      Description copied from interface: EntityTuplizer
      Called just after the entities properties have been initialized.
      Specified by:
      afterInitialize in interface EntityTuplizer
      Parameters:
      entity - The entity being initialized.
      lazyPropertiesAreUnfetched - Are defined lazy properties currently unfecthed
      session - The session initializing this entity.
    • hasUninitializedLazyProperties

      public boolean hasUninitializedLazyProperties(Object entity)
      Description copied from interface: EntityTuplizer
      Does the given entity instance have any currently uninitialized lazy properties?
      Specified by:
      hasUninitializedLazyProperties in interface EntityTuplizer
      Parameters:
      entity - The entity to be check for uninitialized lazy properties.
      Returns:
      True if uninitialized lazy properties were found; false otherwise.
    • isInstance

      public final boolean isInstance(Object object)
      Description copied from interface: Tuplizer
      Is the given object considered an instance of the the entity (acconting for entity-mode) managed by this tuplizer.
      Specified by:
      isInstance in interface Tuplizer
      Parameters:
      object - The object to be checked.
      Returns:
      True if the object is considered as an instance of this entity within the given mode.
    • hasProxy

      public boolean hasProxy()
      Description copied from interface: EntityTuplizer
      Does this entity, for this mode, present a possibility for proxying?
      Specified by:
      hasProxy in interface EntityTuplizer
      Returns:
      True if this tuplizer can generate proxies for this entity.
    • createProxy

      public final Object createProxy(Serializable id, SessionImplementor session) throws HibernateException
      Description copied from interface: EntityTuplizer
      Generates an appropriate proxy representation of this entity for this entity-mode.
      Specified by:
      createProxy in interface EntityTuplizer
      Parameters:
      id - The id of the instance for which to generate a proxy.
      session - The session to which the proxy should be bound.
      Returns:
      The generate proxies.
      Throws:
      HibernateException - Indicates an error generating the proxy.
    • isLifecycleImplementor

      public boolean isLifecycleImplementor()
      Description copied from interface: EntityTuplizer
      Does the class managed by this tuplizer implement the Lifecycle interface.
      Specified by:
      isLifecycleImplementor in interface EntityTuplizer
      Returns:
      True if the Lifecycle interface is implemented; false otherwise.
    • isValidatableImplementor

      public boolean isValidatableImplementor()
      Description copied from interface: EntityTuplizer
      Does the class managed by this tuplizer implement the Validatable interface.
      Specified by:
      isValidatableImplementor in interface EntityTuplizer
      Returns:
      True if the Validatable interface is implemented; false otherwise.
    • getEntityMetamodel

      protected final EntityMetamodel getEntityMetamodel()
    • getFactory

      protected final SessionFactoryImplementor getFactory()
    • getInstantiator

      protected final Instantiator getInstantiator()
    • getProxyFactory

      protected final ProxyFactory getProxyFactory()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getIdentifierGetter

      public Getter getIdentifierGetter()
      Description copied from interface: EntityTuplizer
      Retrieve the getter for the identifier property. May return null.
      Specified by:
      getIdentifierGetter in interface EntityTuplizer
      Returns:
      The getter for the identifier property.
    • getVersionGetter

      public Getter getVersionGetter()
      Description copied from interface: EntityTuplizer
      Retrieve the getter for the version property. May return null.
      Specified by:
      getVersionGetter in interface EntityTuplizer
      Returns:
      The getter for the version property.
    • getGetter

      public Getter getGetter(int i)
      Description copied from interface: Tuplizer
      Retrieve the getter for the specified property.
      Specified by:
      getGetter in interface Tuplizer
      Parameters:
      i - The property index.
      Returns:
      The property getter.