/*
 * 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.query.criteria.internal.expression;

import java.io.Serializable;

import org.hibernate.query.criteria.internal.AbstractNode;
import org.hibernate.query.criteria.internal.CriteriaBuilderImpl;
import org.hibernate.query.criteria.internal.TupleElementImplementor;
import org.hibernate.query.criteria.internal.ValueHandlerFactory;

TODO : javadoc
Author:Steve Ebersole
/** * TODO : javadoc * * @author Steve Ebersole */
public abstract class AbstractTupleElement<X> extends AbstractNode implements TupleElementImplementor<X>, Serializable { private final Class originalJavaType; private Class<X> javaType; private String alias; private ValueHandlerFactory.ValueHandler<X> valueHandler; protected AbstractTupleElement(CriteriaBuilderImpl criteriaBuilder, Class<X> javaType) { super( criteriaBuilder ); this.originalJavaType = javaType; this.javaType = javaType; } @Override public Class<X> getJavaType() { return javaType; } @SuppressWarnings({ "unchecked" }) protected void resetJavaType(Class targetType) { this.javaType = targetType; // this.valueHandler = javaType.equals( originalJavaType ) // ? null // : ValueHandlerFactory.determineAppropriateHandler( javaType ); this.valueHandler = ValueHandlerFactory.determineAppropriateHandler( javaType ); } protected void forceConversion(ValueHandlerFactory.ValueHandler<X> valueHandler) { this.valueHandler = valueHandler; } @Override public ValueHandlerFactory.ValueHandler<X> getValueHandler() { return valueHandler; } @Override public String getAlias() { return alias; }
Protected access to define the alias.
Params:
  • alias – The alias to use.
/** * Protected access to define the alias. * * @param alias The alias to use. */
protected void setAlias(String alias) { this.alias = alias; } }