/* * 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.domain; /** * Represents something that can be incorporated into a query "path". JPA calls this * {@link javax.persistence.metamodel.Bindable}, but that name is misleading IMO so we * call it Navigable to convey the idea that these represent navigation (dot references) * across an "attribute path" ({@code a.addressType} or {@code a.city.state} e.g.) * <p/> * Navigable represents a single piece of these paths. * <p/> * A Navigable may (e.g., a ManyToOne) or may not (e.g., Basic) itself also be a NavigableSource * * @author Steve Ebersole * * @deprecated replace with {@link org.hibernate.persister.common.spi.Navigable} and * {@link org.hibernate.persister.common.spi.NavigableSource} */ @Deprecated public interface SqmNavigable<J> extends SqmDomainTypeExporter<J>, SqmLoggable, SqmExpressableType<J> { /** * Returns the "left hand side" of this Navigable. In the case of a * "root" reference, this will return {@code null}. * * todo (6.0) - on Navigable, this would (and does already via override) return NavigableSource */ SqmNavigableSource getSource(); /** * todo (6.0) - replace with NavigableRole on Navigable? * - the name is simply the NavigableRole's "local name", so seems redundant here */ String getNavigableName(); }