org.hibernate.tuple.entity
Interface EntityTuplizer

All Superinterfaces:
Tuplizer
All Known Implementing Classes:
AbstractEntityTuplizer, Dom4jEntityTuplizer, DynamicMapEntityTuplizer, PojoEntityTuplizer

public interface EntityTuplizer
extends Tuplizer

Defines further responsibilities reagarding tuplization based on a mapped entity.

EntityTuplizer implementations should have the following constructor signature: (org.hibernate.tuple.entity.EntityMetamodel, org.hibernate.mapping.PersistentClass)

Author:
Gavin King, Steve Ebersole

Method Summary
 void afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
          Called just after the entities properties have been initialized.
 Object createProxy(Serializable id, SessionImplementor session)
          Generates an appropriate proxy representation of this entity for this entity-mode.
 Class getConcreteProxyClass()
          Returns the java class to which generated proxies will be typed.
 Serializable getIdentifier(Object entity)
          Extract the identifier value from the given entity.
 Object getPropertyValue(Object entity, String propertyName)
          Extract the value of a particular property from the given entity.
 Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session)
          Extract the values of the insertable properties of the entity (including backrefs)
 Object getVersion(Object entity)
          Extract the value of the version property from the given entity.
 boolean hasProxy()
          Does this entity, for this mode, present a possibility for proxying?
 boolean hasUninitializedLazyProperties(Object entity)
          Does the given entity instance have any currently uninitialized lazy properties?
 Object instantiate(Serializable id)
          Create an entity instance initialized with the given identifier.
 boolean isInstrumented()
          Is it an instrumented POJO?
 boolean isLifecycleImplementor()
          Does the class managed by this tuplizer implement the Lifecycle interface.
 boolean isValidatableImplementor()
          Does the class managed by this tuplizer implement the Validatable interface.
 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.
 void setIdentifier(Object entity, Serializable id)
          Inject the identifier value into the given entity.
 void setPropertyValue(Object entity, int i, Object value)
          Inject the value of a particular property.
 void setPropertyValue(Object entity, String propertyName, Object value)
          Inject the value of a particular property.
 
Methods inherited from interface org.hibernate.tuple.Tuplizer
getMappedClass, getPropertyValue, getPropertyValues, instantiate, isInstance, setPropertyValues
 

Method Detail

instantiate

Object instantiate(Serializable id)
                   throws HibernateException
Create an entity instance initialized with the given identifier.

Parameters:
id - The identifier value for the entity to be instantiated.
Returns:
The instantiated entity.
Throws:
HibernateException

getIdentifier

Serializable getIdentifier(Object entity)
                           throws HibernateException
Extract the identifier value from the given entity.

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 occurrs accessing its value.

setIdentifier

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

Parameters:
entity - The entity to inject with the identifier value.
id - The value to be injected as the identifier.
Throws:
HibernateException

resetIdentifier

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.

Parameters:
currentId - The identifier value to inject into the entity.
currentVersion - The version value to inject into the entity.

getVersion

Object getVersion(Object entity)
                  throws HibernateException
Extract the value of the version property from the given entity.

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

setPropertyValue

void setPropertyValue(Object entity,
                      int i,
                      Object value)
                      throws HibernateException
Inject the value of a particular property.

Parameters:
entity - The entity into which to inject the value.
i - The property's index.
value - The property value to inject.
Throws:
HibernateException

setPropertyValue

void setPropertyValue(Object entity,
                      String propertyName,
                      Object value)
                      throws HibernateException
Inject the value of a particular property.

Parameters:
entity - The entity into which to inject the value.
propertyName - The name of the property.
value - The property value to inject.
Throws:
HibernateException

getPropertyValuesToInsert

Object[] getPropertyValuesToInsert(Object entity,
                                   Map mergeMap,
                                   SessionImplementor session)
                                   throws HibernateException
Extract the values of the insertable properties of the entity (including backrefs)

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

Object getPropertyValue(Object entity,
                        String propertyName)
                        throws HibernateException
Extract the value of a particular property from the given entity.

Parameters:
entity - The entity from which to extract the property value.
propertyName - 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

afterInitialize

void afterInitialize(Object entity,
                     boolean lazyPropertiesAreUnfetched,
                     SessionImplementor session)
Called just after the entities properties have been initialized.

Parameters:
entity - The entity being initialized.
lazyPropertiesAreUnfetched - Are defined lazy properties currently unfecthed
session - The session initializing this entity.

hasProxy

boolean hasProxy()
Does this entity, for this mode, present a possibility for proxying?

Returns:
True if this tuplizer can generate proxies for this entity.

createProxy

Object createProxy(Serializable id,
                   SessionImplementor session)
                   throws HibernateException
Generates an appropriate proxy representation of this entity for this entity-mode.

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

boolean isLifecycleImplementor()
Does the class managed by this tuplizer implement the Lifecycle interface.

Returns:
True if the Lifecycle interface is implemented; false otherwise.

isValidatableImplementor

boolean isValidatableImplementor()
Does the class managed by this tuplizer implement the Validatable interface.

Returns:
True if the Validatable interface is implemented; false otherwise.

getConcreteProxyClass

Class getConcreteProxyClass()
Returns the java class to which generated proxies will be typed.

Returns:
The java class to which generated proxies will be typed

hasUninitializedLazyProperties

boolean hasUninitializedLazyProperties(Object entity)
Does the given entity instance have any currently uninitialized lazy properties?

Parameters:
entity - The entity to be check for uninitialized lazy properties.
Returns:
True if uninitialized lazy properties were found; false otherwise.

isInstrumented

boolean isInstrumented()
Is it an instrumented POJO?