/* * Hibernate, Relational Persistence for Idiomatic Java * * License: Apache License, Version 2.0 * See the LICENSE file in the root directory or visit http://www.apache.org/licenses/LICENSE-2.0 */ package org.hibernate.test.sqm.parser.criteria.tree.expression; import java.io.Serializable; import javax.persistence.TupleElement; import org.hibernate.test.sqm.parser.criteria.tree.AbstractNode; import org.hibernate.test.sqm.parser.criteria.tree.CriteriaBuilderImpl; /** * TODO : javadoc * * @author Steve Ebersole */ public abstract class AbstractTupleElement<X> extends AbstractNode implements TupleElement<X>, Serializable { private final Class originalJavaType; private Class<X> javaType; private String alias; 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; } @Override public String getAlias() { return alias; } /** * Protected access to define the alias. * * @param alias The alias to use. */ protected void setAlias(String alias) { this.alias = alias; } }