/* * 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.from; import org.hibernate.persister.queryable.spi.EntityValuedExpressableType; import org.hibernate.query.sqm.tree.expression.domain.SqmNavigableReference; import org.jboss.logging.Logger; /** * Convenience base class for FromElement implementations * * @author Steve Ebersole */ public abstract class AbstractSqmFrom implements SqmFrom { private static final Logger log = Logger.getLogger( AbstractSqmFrom.class ); private final SqmFromElementSpace fromElementSpace; private final String uid; private final String alias; private final SqmNavigableReference binding; private final EntityValuedExpressableType subclassIndicator; protected AbstractSqmFrom( SqmFromElementSpace fromElementSpace, String uid, String alias, SqmNavigableReference binding, EntityValuedExpressableType subclassIndicator) { this.fromElementSpace = fromElementSpace; this.uid = uid; this.alias = alias; this.binding = binding; this.subclassIndicator = subclassIndicator; } @Override public SqmNavigableReference getBinding() { return binding; } // @Override // public SqmNavigableSource getReferencedNavigable() { // return binding.getReferencedNavigable(); // } @Override public SqmFromElementSpace getContainingSpace() { return fromElementSpace; } @Override public String getUniqueIdentifier() { return uid; } @Override public String getIdentificationVariable() { return alias; } @Override public EntityValuedExpressableType getIntrinsicSubclassIndicator() { return subclassIndicator; } }