/* * 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.collection.spi; import java.util.List; import org.hibernate.orm.persister.common.spi.Column; import org.hibernate.orm.type.spi.Type; /** * @author Steve Ebersole */ public abstract class AbstractCollectionIndex<O extends Type> implements CollectionIndex { private final CollectionPersister persister; private final O ormType; private final List<Column> columns; public AbstractCollectionIndex(CollectionPersister persister, O ormType, List<Column> columns) { this.persister = persister; this.ormType = ormType; this.columns = columns; } @Override public CollectionPersister getSource() { return persister; } @Override public String getTypeName() { return getOrmType().getTypeName(); } @Override public O getExportedDomainType() { return getOrmType(); } @Override public Class getJavaType() { return getOrmType().getJavaType(); } @Override public String getNavigableName() { return "{index}"; } @Override public O getOrmType() { return ormType; } @Override public List<Column> getColumns() { return columns; } @Override public String asLoggableText() { return "PluralAttributeIndex(" + persister.getRole() + " [" + getOrmType().getTypeName() + "])"; } }