org.hibernate.query.sqm.tree.expression.domain.AbstractSpecificSqmElementReference Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* 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.sqm.tree.expression.domain;
import org.hibernate.query.sqm.produce.path.spi.SemanticPathPart;
import org.hibernate.query.sqm.produce.spi.SqmCreationContext;
import org.hibernate.query.sqm.tree.expression.SqmExpression;
/**
* @author Steve Ebersole
*/
public abstract class AbstractSpecificSqmElementReference
extends AbstractSqmCollectionElementReference
implements SqmNavigableReference, SqmRestrictedCollectionElementReference {
public AbstractSpecificSqmElementReference(SqmPluralAttributeReference pluralAttributeBinding) {
super( pluralAttributeBinding );
}
@Override
public SemanticPathPart resolvePathPart(
String name,
String currentContextKey,
boolean isTerminal,
SqmCreationContext context) {
return getPluralAttributeReference().getReferencedNavigable()
.getPersistentCollectionDescriptor()
.getElementDescriptor()
.createSqmExpression( getPluralAttributeReference().getExportedFromElement(), getPluralAttributeReference(), context );
}
@Override
public SqmRestrictedCollectionElementReference resolveIndexedAccess(
SqmExpression selector,
String currentContextKey,
boolean isTerminal,
SqmCreationContext context) {
throw new UnsupportedOperationException( );
}
}