/*
 * 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 <http://www.gnu.org/licenses/lgpl-2.1.html>.
 */
package org.hibernate.persister.spi;

Where to begin... :) This gets to the internal concept of 2-phase loading of entity data and how specifically it is done. Essentially for composite values, the process of hydration results in a tuple array comprising the composition "atomic" values. For example, a Name component's hydrated state might look like ["Steve", "L", "Ebersole"]. There are times when we need to be able to extract individual pieces out of the hydrated tuple array. For example, for an entity with a composite identifier part of which is an association (a key-many-to-one) we often need to attempt 2-phase processing on the association portion of the identifier's hydrated tuple array. This contract allows us access to portions of the hydrated tuple state.
Author:Steve Ebersole
/** * Where to begin... :) * * This gets to the internal concept of 2-phase loading of entity data and how specifically it is done. Essentially * for composite values, the process of hydration results in a tuple array comprising the composition "atomic" values. * For example, a Name component's hydrated state might look like {@code ["Steve", "L", "Ebersole"]}. * * There are times when we need to be able to extract individual pieces out of the hydrated tuple array. For example, * for an entity with a composite identifier part of which is an association (a key-many-to-one) we often need to * attempt 2-phase processing on the association portion of the identifier's hydrated tuple array. * * This contract allows us access to portions of the hydrated tuple state. * * @author Steve Ebersole */
public interface HydratedCompoundValueHandler { public Object extract(Object hydratedState); public void inject(Object hydratedState, Object value); }