/*
 * 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.transform;
import java.util.HashMap;
import java.util.Map;

ResultTransformer implementation which builds a map for each "row", made up of each aliased value where the alias is the map key.

Since this transformer is stateless, all instances would be considered equal. So for optimization purposes we limit it to a single, singleton instance.
Author:Gavin King, Steve Ebersole
/** * {@link ResultTransformer} implementation which builds a map for each "row", * made up of each aliased value where the alias is the map key. * <p/> * Since this transformer is stateless, all instances would be considered equal. * So for optimization purposes we limit it to a single, singleton {@link #INSTANCE instance}. * * @author Gavin King * @author Steve Ebersole */
public class AliasToEntityMapResultTransformer extends AliasedTupleSubsetResultTransformer { public static final AliasToEntityMapResultTransformer INSTANCE = new AliasToEntityMapResultTransformer();
Disallow instantiation of AliasToEntityMapResultTransformer.
/** * Disallow instantiation of AliasToEntityMapResultTransformer. */
private AliasToEntityMapResultTransformer() { } @Override public Object transformTuple(Object[] tuple, String[] aliases) { Map result = new HashMap(tuple.length); for ( int i=0; i<tuple.length; i++ ) { String alias = aliases[i]; if ( alias!=null ) { result.put( alias, tuple[i] ); } } return result; } @Override public boolean isTransformedValueATupleElement(String[] aliases, int tupleLength) { return false; }
Serialization hook for ensuring singleton uniqueing.
Returns:The singleton instance : INSTANCE
/** * Serialization hook for ensuring singleton uniqueing. * * @return The singleton instance : {@link #INSTANCE} */
private Object readResolve() { return INSTANCE; } }