/*
 * 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.tuple.component;

import org.hibernate.engine.spi.SessionFactoryImplementor;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.persister.walking.spi.EntityDefinition;
import org.hibernate.tuple.BaselineAttributeInformation;
import org.hibernate.type.CompositeType;

Author:Steve Ebersole
/** * @author Steve Ebersole */
public class CompositionBasedCompositionAttribute extends AbstractCompositionAttribute { public CompositionBasedCompositionAttribute( AbstractCompositionAttribute source, SessionFactoryImplementor sessionFactory, int entityBasedAttributeNumber, String attributeName, CompositeType attributeType, int columnStartPosition, BaselineAttributeInformation baselineInfo) { super( source, sessionFactory, entityBasedAttributeNumber, attributeName, attributeType, columnStartPosition, baselineInfo ); } @Override protected EntityPersister locateOwningPersister() { final AbstractCompositionAttribute source = (AbstractCompositionAttribute) getSource(); if ( EntityDefinition.class.isInstance( source.getSource() ) ) { return EntityDefinition.class.cast( source.getSource() ).getEntityPersister(); } else { return AbstractCompositionAttribute.class.cast( source.getSource() ).locateOwningPersister(); } } }