/* * 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.orm.persister.common.spi; import org.hibernate.orm.type.spi.Type; /** * @author Steve Ebersole */ public interface OrmAttribute<O,T> extends OrmNavigable<T>, OrmTypeExporter<T>, javax.persistence.metamodel.Attribute<O,T> { @Override ManagedTypeImplementor<O> getSource(); String getAttributeName(); @Override default String getName() { return getNavigableName(); } @Override default ManagedTypeImplementor<O> getDeclaringType() { return getSource(); } @Override default Type getExportedDomainType() { return getOrmType(); } @Override @SuppressWarnings("unchecked") default Class<T> getJavaType() { return (Class<T>) getExportedDomainType().getJavaTypeDescriptor().getJavaType(); } }