package org.hibernate.cfg.naming;
import org.hibernate.internal.util.StringHelper;
public class HbmNamingStrategyDelegate extends NamingStrategyDelegateAdapter {
@Override
public String determineImplicitPrimaryTableName(String entityName, String jpaEntityName) {
return StringHelper.unqualify( entityName );
}
@Override
public String determineImplicitElementCollectionTableName(
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String propertyPath) {
return ownerEntityTable
+ '_'
+ StringHelper.unqualify( propertyPath );
}
@Override
public String determineImplicitElementCollectionJoinColumnName(String ownerEntityName, String ownerJpaEntityName, String ownerEntityTable, String referencedColumnName, String propertyPath) {
throw new UnsupportedOperationException( "Method not supported for Hibernate-specific mappings" );
}
@Override
public String determineImplicitEntityAssociationJoinTableName(
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String associatedEntityName,
String associatedJpaEntityName,
String associatedEntityTable,
String propertyPath) {
return ownerEntityTable
+ '_'
+ StringHelper.unqualify( propertyPath );
}
@Override
public String determineImplicitEntityAssociationJoinColumnName(
String propertyEntityName, String propertyJpaEntityName, String propertyTableName, String referencedColumnName, String propertyPath) {
throw new UnsupportedOperationException( "Method not supported for Hibernate-specific mappings" );
}
@Override
public String determineLogicalElementCollectionTableName(
String tableName,
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String propertyName) {
if ( tableName != null ) {
return tableName;
}
else {
return determineImplicitElementCollectionTableName(
ownerEntityName,
ownerJpaEntityName,
ownerEntityTable,
propertyName
);
}
}
@Override
public String determineLogicalEntityAssociationJoinTableName(
String tableName,
String ownerEntityName,
String ownerJpaEntityName,
String ownerEntityTable,
String associatedEntityName,
String associatedJpaEntityName,
String associatedEntityTable,
String propertyName) {
if ( tableName != null ) {
return tableName;
}
else {
return determineImplicitEntityAssociationJoinTableName(
ownerEntityName,
ownerJpaEntityName,
ownerEntityTable,
associatedEntityName,
associatedJpaEntityName,
associatedEntityTable,
propertyName
);
}
}
}