org.hibernate.tuple
Interface Tuplizer
- ComponentTuplizer, EntityTuplizer
- AbstractComponentTuplizer, AbstractEntityTuplizer, Dom4jComponentTuplizer, Dom4jEntityTuplizer, DynamicMapComponentTuplizer, DynamicMapEntityTuplizer, PojoComponentTuplizer, PojoEntityTuplizer
public interface Tuplizer
A tuplizer defines the contract for things which know how to manage
a particular representation of a piece of data, given that
representation's
EntityMode
(the entity-mode
essentially defining which representation).
If that given piece of data is thought of as a data structure, then a tuplizer
is the thing which knows how to
- create such a data structure appropriately
- extract values from and inject values into such a data structure
For example, a given piece of data might be represented as a POJO class.
Here, it's representation and entity-mode is POJO. Well a tuplizer for POJO
entity-modes would know how to
- create the data structure by calling the POJO's constructor
- extract and inject values through getters/setter, or by direct field access, etc
That same piece of data might also be represented as a DOM structure, using
the tuplizer associated with the DOM4J entity-mode, which would generate instances
of
org.dom4j.Element
as the data structure and know how to access the
values as either nested
org.dom4j.Element
s or as
org.dom4j.Attribute
s.
Class | getMappedClass() - Return the pojo class managed by this tuplizer.
|
Object | getPropertyValue(Object entity, int i) - Extract the value of a particular property from the given entity.
|
Object[] | getPropertyValues(Object entity) - Extract the current values contained on the given entity.
|
Object | instantiate() - Generate a new, empty entity.
|
boolean | isInstance(Object object) - Is the given object considered an instance of the the entity (acconting
for entity-mode) managed by this tuplizer.
|
void | setPropertyValues(Object entity, Object[] values) - Inject the given values into the given entity.
|
getMappedClass
public Class getMappedClass()
Return the pojo class managed by this tuplizer.
Need to determine how to best handle this for the Tuplizers for EntityModes
other than POJO.
todo : be really nice to not have this here since it is essentially pojo specific...
getPropertyValue
public Object getPropertyValue(Object entity,
int i)
throws HibernateException
Extract the value of a particular property from the given entity.
entity
- The entity from which to extract the property value.i
- The index of the property for which to extract the value.
- The current value of the given property on the given entity.
getPropertyValues
public Object[] getPropertyValues(Object entity)
throws HibernateException
Extract the current values contained on the given entity.
entity
- The entity from which to extract values.
- The current property values.
instantiate
public Object instantiate()
throws HibernateException
Generate a new, empty entity.
- The new, empty entity instance.
isInstance
public boolean isInstance(Object object)
Is the given object considered an instance of the the entity (acconting
for entity-mode) managed by this tuplizer.
object
- The object to be checked.
- True if the object is considered as an instance of this entity
within the given mode.
setPropertyValues
public void setPropertyValues(Object entity,
Object[] values)
throws HibernateException
Inject the given values into the given entity.
entity
- The entity.values
- The values to be injected.