org.hibernate.tuple.Tuplizer Maven / Gradle / Ivy
Show all versions of beangle-hibernate-core Show documentation
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.tuple;
import org.hibernate.metamodel.spi.ManagedTypeRepresentationStrategy;
import org.hibernate.metamodel.RepresentationMode;
import org.hibernate.property.access.spi.Getter;
/**
* A tuplizer defines the contract for things which know how to manage
* a particular representation of a piece of data, given that
* representation's {@link RepresentationMode} (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
*
*
* @author Steve Ebersole
*
* @deprecated See {@link ManagedTypeRepresentationStrategy}
*/
@Deprecated
public interface Tuplizer {
/**
* Extract the value of a particular property from the given entity.
*
* @param entity The entity from which to extract the property value.
* @param i The index of the property for which to extract the value.
* @return The current value of the given property on the given entity.
*/
Object getPropertyValue(Object entity, int i);
/**
* 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...
*
* @return The persistent class.
*/
Class> getMappedClass();
/**
* Retrieve the getter for the specified property.
*
* @param i The property index.
* @return The property getter.
*/
Getter getGetter(int i);
}