/* * 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.loader.plan.build.internal.returns; import org.hibernate.engine.FetchStrategy; import org.hibernate.loader.plan.spi.AnyAttributeFetch; import org.hibernate.loader.plan.spi.AttributeFetch; import org.hibernate.loader.plan.spi.EntityReference; import org.hibernate.loader.plan.spi.FetchSource; import org.hibernate.persister.walking.spi.AssociationAttributeDefinition; import org.hibernate.persister.walking.spi.AttributeDefinition; import org.hibernate.type.AnyType; /** * @author Steve Ebersole * @author Gail Badner */ public class AnyAttributeFetchImpl extends AbstractAnyReference implements AnyAttributeFetch, AttributeFetch { private final FetchSource fetchSource; private final AssociationAttributeDefinition fetchedAttribute; private final FetchStrategy fetchStrategy; public AnyAttributeFetchImpl( FetchSource fetchSource, AssociationAttributeDefinition fetchedAttribute, FetchStrategy fetchStrategy) { super( fetchSource.getPropertyPath().append( fetchedAttribute.getName() ) ); this.fetchSource = fetchSource; this.fetchedAttribute = fetchedAttribute; this.fetchStrategy = fetchStrategy; } @Override public FetchSource getSource() { return fetchSource; } @Override public FetchStrategy getFetchStrategy() { return fetchStrategy; } @Override public AnyType getFetchedType() { return (AnyType) fetchedAttribute.getType(); } @Override public boolean isNullable() { return fetchedAttribute.isNullable(); } @Override public String[] toSqlSelectFragments(String alias) { return new String[0]; //To change body of implemented methods use File | Settings | File Templates. } @Override public String getAdditionalJoinConditions() { // only pertinent for HQL... return null; } @Override public EntityReference resolveEntityReference() { return fetchSource.resolveEntityReference(); } @Override public AttributeDefinition getFetchedAttributeDefinition() { return fetchedAttribute; } }