org.hibernate.boot.model.source.internal.hbm.RootEntitySourceImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* 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 .
*/
package org.hibernate.boot.model.source.internal.hbm;
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmNaturalIdType;
import org.hibernate.boot.jaxb.hbm.spi.JaxbHbmRootEntityType;
import org.hibernate.boot.model.source.spi.IdentifiableTypeSource;
import org.hibernate.boot.model.source.spi.NaturalIdMutability;
import org.hibernate.boot.model.source.spi.TableSpecificationSource;
/**
* @author Steve Ebersole
* @author Gail Badner
*/
public class RootEntitySourceImpl extends AbstractEntitySourceImpl {
private final TableSpecificationSource primaryTable;
protected RootEntitySourceImpl(
MappingDocument sourceMappingDocument,
JaxbHbmRootEntityType entityElement) {
super( sourceMappingDocument, entityElement );
this.primaryTable = Helper.createTableSource(
sourceMappingDocument(),
entityElement,
this,
entityElement.getRowid(),
entityElement.getComment(),
entityElement.getCheck()
);
afterInstantiation();
}
@Override
protected void buildAttributeSources(final AttributesHelper.Callback attributeBuildingCallback) {
final JaxbHbmNaturalIdType naturalId = jaxbEntityMapping().getNaturalId();
if ( naturalId != null ) {
final NaturalIdMutability naturalIdMutability = naturalId.isMutable()
? NaturalIdMutability.MUTABLE
: NaturalIdMutability.IMMUTABLE;
AttributesHelper.processAttributes(
sourceMappingDocument(),
attributeBuildingCallback,
naturalId.getAttributes(),
null,
naturalIdMutability
);
}
super.buildAttributeSources( attributeBuildingCallback );
}
@Override
protected JaxbHbmRootEntityType jaxbEntityMapping() {
return (JaxbHbmRootEntityType) super.jaxbEntityMapping();
}
@Override
public TableSpecificationSource getPrimaryTable() {
return primaryTable;
}
@Override
public String getDiscriminatorMatchValue() {
return jaxbEntityMapping().getDiscriminatorValue();
}
@Override
public IdentifiableTypeSource getSuperType() {
return null;
}
}