public interface

EntityTuplizer

implements Tuplizer
org.hibernate.tuple.entity.EntityTuplizer
Known Indirect Subclasses

Class Overview

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)

Summary

Public Methods
abstract void afterInitialize(Object entity, boolean lazyPropertiesAreUnfetched, SessionImplementor session)
Called just after the entities properties have been initialized.
abstract Object createProxy(Serializable id, SessionImplementor session)
Generates an appropriate proxy representation of this entity for this entity-mode.
abstract String determineConcreteSubclassEntityName(Object entityInstance, SessionFactoryImplementor factory)
Given an entity instance, determine the most appropriate (most targeted) entity-name which represents it.
abstract Class getConcreteProxyClass()
Returns the java class to which generated proxies will be typed.
abstract EntityMode getEntityMode()
Return the entity-mode handled by this tuplizer instance.
abstract EntityNameResolver[] getEntityNameResolvers()
Get any EntityNameResolvers associated with this Tuplizer.
abstract Serializable getIdentifier(Object entity, SessionImplementor session)
Extract the identifier value from the given entity.
abstract Serializable getIdentifier(Object entity)
This method is deprecated. Use getIdentifier(Object, SessionImplementor) instead.
abstract Getter getIdentifierGetter()
Retrieve the getter for the identifier property.
abstract Object getPropertyValue(Object entity, String propertyName)
Extract the value of a particular property from the given entity.
abstract Object[] getPropertyValuesToInsert(Object entity, Map mergeMap, SessionImplementor session)
Extract the values of the insertable properties of the entity (including backrefs)
abstract Object getVersion(Object entity)
Extract the value of the version property from the given entity.
abstract Getter getVersionGetter()
Retrieve the getter for the version property.
abstract boolean hasProxy()
Does this entity, for this mode, present a possibility for proxying?
abstract boolean hasUninitializedLazyProperties(Object entity)
Does the given entity instance have any currently uninitialized lazy properties?
abstract Object instantiate(Serializable id, SessionImplementor session)
Create an entity instance initialized with the given identifier.
abstract Object instantiate(Serializable id)
This method is deprecated. Use instantiate(Serializable, SessionImplementor) instead.
abstract boolean isInstrumented()
Is it an instrumented POJO?
abstract boolean isLifecycleImplementor()
Does the class managed by this tuplizer implement the Lifecycle interface.
abstract boolean isValidatableImplementor()
Does the class managed by this tuplizer implement the Validatable interface.
abstract void resetIdentifier(Object entity, Serializable currentId, Object currentVersion)
abstract 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.
abstract void setIdentifier(Object entity, Serializable id)
This method is deprecated. Use setIdentifier(Object, Serializable, SessionImplementor) instead.
abstract void setIdentifier(Object entity, Serializable id, SessionImplementor session)
Inject the identifier value into the given entity.
abstract void setPropertyValue(Object entity, int i, Object value)
Inject the value of a particular property.
abstract void setPropertyValue(Object entity, String propertyName, Object value)
Inject the value of a particular property.
[Expand]
Inherited Methods
From interface org.hibernate.tuple.Tuplizer

Public Methods

public abstract 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.

public abstract Object createProxy (Serializable id, SessionImplementor session)

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.

public abstract String determineConcreteSubclassEntityName (Object entityInstance, SessionFactoryImplementor factory)

Given an entity instance, determine the most appropriate (most targeted) entity-name which represents it. This is called in situations where we already know an entity name for the given entityInstance; we are being asked to determine if there is a more appropriate entity-name to use, specifically within an inheritence hierarchy.

For example, consider a case where a user calls session.update( "Animal", cat );. Here, the user has explicitly provided Animal as the entity-name. However, they have passed in an instance of Cat which is a subclass of Animal. In this case, we would return Cat as the entity-name.

null may be returned from calls to this method. The meaining of null in that case is assumed to be that we should use whatever explicit entity-name the user provided (Animal rather than Cat in the example above).

Parameters
entityInstance The entity instance.
factory Reference to the SessionFactory.
Returns
  • The most appropriate entity name to use.
Throws
HibernateException If we are unable to determine an entity-name within the inheritence hierarchy.

public abstract Class getConcreteProxyClass ()

Returns the java class to which generated proxies will be typed.

todo : look at fully encapsulating narrowProxy(Object, EntityPersister, EntityKey, Object) here, since that is the only external use of this method

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

public abstract EntityMode getEntityMode ()

Return the entity-mode handled by this tuplizer instance.

Returns
  • The entity-mode

public abstract EntityNameResolver[] getEntityNameResolvers ()

Get any EntityNameResolvers associated with this Tuplizer.

Returns
  • The associated resolvers. May be null or empty.

public abstract Serializable getIdentifier (Object entity, SessionImplementor session)

Extract the identifier value from the given entity.

Parameters
entity The entity from which to extract the identifier value.
session The session from which is requests originates
Returns
  • The identifier value.

public abstract Serializable getIdentifier (Object entity)

This method is deprecated.
Use getIdentifier(Object, SessionImplementor) instead.

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

public abstract Getter getIdentifierGetter ()

Retrieve the getter for the identifier property. May return null.

Returns
  • The getter for the identifier property.

public abstract Object getPropertyValue (Object entity, String propertyName)

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.

public abstract Object[] getPropertyValuesToInsert (Object entity, Map mergeMap, SessionImplementor session)

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.

public abstract Object getVersion (Object entity)

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.

public abstract Getter getVersionGetter ()

Retrieve the getter for the version property. May return null.

Returns
  • The getter for the version property.

public abstract boolean hasProxy ()

Does this entity, for this mode, present a possibility for proxying?

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

public abstract 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.

public abstract Object instantiate (Serializable id, SessionImplementor session)

Create an entity instance initialized with the given identifier.

Parameters
id The identifier value for the entity to be instantiated.
session The session from which is requests originates
Returns
  • The instantiated entity.

public abstract Object instantiate (Serializable id)

This method is deprecated.
Use instantiate(Serializable, SessionImplementor) instead.

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
HibernateException

public abstract boolean isInstrumented ()

Is it an instrumented POJO?

public abstract boolean isLifecycleImplementor ()

Does the class managed by this tuplizer implement the Lifecycle interface.

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

public abstract boolean isValidatableImplementor ()

Does the class managed by this tuplizer implement the Validatable interface.

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

public abstract void resetIdentifier (Object entity, Serializable currentId, Object currentVersion)

This method is deprecated.
Use resetIdentifier(Object, Serializable, Object, SessionImplementor) instead

Inject the given identifier and version into the entity, in order to "roll back" to their original values.

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.

public abstract 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.

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

public abstract void setIdentifier (Object entity, Serializable id)

This method is deprecated.
Use setIdentifier(Object, Serializable, SessionImplementor) instead.

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.

public abstract 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

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

public abstract void setPropertyValue (Object entity, int i, Object value)

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.

public abstract void setPropertyValue (Object entity, String propertyName, Object value)

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.