/*
 * 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.cfg;
import java.util.Map;

import org.hibernate.AnnotationException;
import org.hibernate.MappingException;
import org.hibernate.cfg.annotations.TableBinder;
import org.hibernate.mapping.PersistentClass;
import org.hibernate.mapping.SimpleValue;

Author:Emmanuel Bernard
/** * @author Emmanuel Bernard */
public class PkDrivenByDefaultMapsIdSecondPass implements SecondPass { private final String referencedEntityName; private final Ejb3JoinColumn[] columns; private final SimpleValue value; public PkDrivenByDefaultMapsIdSecondPass(String referencedEntityName, Ejb3JoinColumn[] columns, SimpleValue value) { this.referencedEntityName = referencedEntityName; this.columns = columns; this.value = value; } public void doSecondPass(Map persistentClasses) throws MappingException { PersistentClass referencedEntity = (PersistentClass) persistentClasses.get( referencedEntityName ); if ( referencedEntity == null ) { throw new AnnotationException( "Unknown entity name: " + referencedEntityName ); } TableBinder.linkJoinColumnWithValueOverridingNameIfImplicit( referencedEntity, referencedEntity.getKey().getColumnIterator(), columns, value); } }