public abstract class ObjectNameNormalizer extends Object
Provides centralized normalization of how database object names are handled.
Constructor and Description |
---|
ObjectNameNormalizer() |
Modifier and Type | Method and Description |
---|---|
String |
applyGlobalQuoting(String text)
Intended only for use in handling quoting requirements for
column-definition
as defined by Column.columnDefinition() ,
JoinColumn.columnDefinition() , etc. |
protected Database |
database() |
Identifier |
determineLogicalName(String explicitName,
NamingStrategyHelper namingStrategyHelper)
Determine the logical name give a (potentially
null /empty) explicit name. |
protected abstract MetadataBuildingContext |
getBuildingContext()
Access the contextual information related to the current process of building metadata.
|
Identifier |
normalizeIdentifierQuoting(Identifier identifier) |
Identifier |
normalizeIdentifierQuoting(String identifierText)
Normalizes the quoting of identifiers.
|
String |
normalizeIdentifierQuotingAsString(String identifierText)
Normalizes the quoting of identifiers.
|
String |
toDatabaseIdentifierText(String identifierText) |
public Identifier normalizeIdentifierQuoting(String identifierText)
Normalizes the quoting of identifiers. <p/> This implements the rules set forth in JPA 2 (section "2.13 Naming of Database Objects") which states that the double-quote (") is the character which should be used to denote a <tt>quoted identifier</tt>. Here, we handle recognizing that and converting it to the more elegant bactick (`) approach used in Hibernate.. Additionally we account for applying what JPA2 terms "globally quoted identifiers".
identifierText
- The identifier to be quoting-normalized.protected Database database()
public Identifier normalizeIdentifierQuoting(Identifier identifier)
public String normalizeIdentifierQuotingAsString(String identifierText)
Normalizes the quoting of identifiers. This form returns a String rather than an Identifier
to better work with the legacy code in org.hibernate.mapping
identifierText
- The identifier to be quoting-normalized.public Identifier determineLogicalName(String explicitName, NamingStrategyHelper namingStrategyHelper)
Determine the logical name give a (potentially null
/empty) explicit name.
explicitName
- The explicit, user-supplied namenamingStrategyHelper
- The naming strategy helper.public String applyGlobalQuoting(String text)
Intended only for use in handling quoting requirements for column-definition
as defined by Column.columnDefinition()
,
JoinColumn.columnDefinition()
, etc. This method should not
be called in any other scenario.
text
- The specified column definitionprotected abstract MetadataBuildingContext getBuildingContext()
Access the contextual information related to the current process of building metadata. Here,
that typically might be needed for accessing:<ul>
<li>ImplicitNamingStrategy
</li>
<li>PhysicalNamingStrategy
</li>
<li>Database
</li>
</ul>
Copyright © 2001-2018 Red Hat, Inc. All Rights Reserved.