public class DisplayNameNormalizer extends Object
This class provides display-focused normalization that is separate from the matching/equality normalization used during name resolution. The key principle is:
IdentifierService): applies case folding
and other transformations to create a canonical key for comparison
DisplayNameNormalizer normalizer = new DisplayNameNormalizer(EDbVendor.dbvbigquery);
normalizer.setMode(DisplayNameMode.DISPLAY);
// Strip backticks, preserve case
String display = normalizer.normalizeTableName("`kalyan-DB`.`test-schema`.`t1`");
// Result: "kalyan-DB.test-schema.t1"
DisplayNameMode,
DisplayNamePolicy| Constructor and Description |
|---|
DisplayNameNormalizer()
Create a normalizer with default vendor (ANSI).
|
DisplayNameNormalizer(EDbVendor vendor)
Create a normalizer for the specified database vendor.
|
| Modifier and Type | Method and Description |
|---|---|
DisplayNameMode |
getMode()
Get the current display mode.
|
String |
getTableDisplayName(TTable table)
Get a display name for a table, handling various TTable configurations.
|
boolean |
isStripDelimiters()
Check if delimiters should be stripped.
|
String |
normalizeColumnName(String columnName)
Normalize a column name for display.
|
String |
normalizeIdentifier(String identifier)
Normalize a single identifier (without dots) for display.
|
String |
normalizeObjectName(TObjectName objectName)
Normalize an object name (table or column) for display.
|
String |
normalizeQualifiedName(String qualifiedName)
Normalize a qualified name (e.g., schema.table.column) for display.
|
String |
normalizeTableName(TTable table)
Normalize a table name for display.
|
DisplayNameNormalizer |
setMode(DisplayNameMode mode)
Set the display mode.
|
DisplayNameNormalizer |
setStripDelimiters(boolean stripDelimiters)
Set whether to strip delimiters.
|
String |
stripAllDelimiters(String identifier)
Strip all SQL delimiters from an identifier.
|
String |
toString() |
public DisplayNameNormalizer(EDbVendor vendor)
vendor - the database vendor (determines delimiter style)public DisplayNameNormalizer()
public DisplayNameMode getMode()
public DisplayNameNormalizer setMode(DisplayNameMode mode)
mode - the display modepublic boolean isStripDelimiters()
public DisplayNameNormalizer setStripDelimiters(boolean stripDelimiters)
stripDelimiters - true to strip delimiterspublic String normalizeTableName(TTable table)
table - the table objectpublic String normalizeObjectName(TObjectName objectName)
objectName - the object name nodepublic String normalizeColumnName(String columnName)
columnName - the column name (may include table prefix)public String normalizeQualifiedName(String qualifiedName)
This method handles multi-part names by normalizing each segment separately while preserving the dot separators.
qualifiedName - the qualified namepublic String normalizeIdentifier(String identifier)
identifier - the identifierpublic String stripAllDelimiters(String identifier)
Handles multiple delimiter styles:
"name" → name`name` → name[name] → name'name' → nameidentifier - the identifier (may be quoted)public String getTableDisplayName(TTable table)
table - the table