/*
* 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.test.sqm.parser.criteria.tree.select;
import java.util.List;
import org.hibernate.query.sqm.produce.spi.criteria.CriteriaVisitor;
import org.hibernate.query.sqm.produce.spi.criteria.JpaExpression;
import org.hibernate.query.sqm.tree.select.SqmAliasedExpressionContainer;
import org.hibernate.test.sqm.parser.criteria.tree.CriteriaBuilderException;
import org.hibernate.test.sqm.parser.criteria.tree.CriteriaBuilderImpl;
/**
* @author Steve Ebersole
*/
public class ArrayJpaSelectionImpl<T> extends AbstractCompoundSelection<T> {
public ArrayJpaSelectionImpl(
CriteriaBuilderImpl criteriaBuilder,
Class<T> javaType,
List<JpaExpression<?>> expressions) {
super( criteriaBuilder, javaType, expressions );
if ( !javaType.isArray() ) {
throw new CriteriaBuilderException(
"Expecting array type as result-type for JpaArraySelection, but found : " +
javaType.getName()
);
}
}
@Override
public void visitSelections(CriteriaVisitor visitor, SqmAliasedExpressionContainer container) {
for ( JpaExpression<?> jpaExpression : getExpressions() ) {
container.add(
jpaExpression.visitExpression( visitor ),
jpaExpression.getAlias()
);
}
}
}