Class DisplayNameNormalizer
Object
gudusoft.gsqlparser.resolver2.format.DisplayNameNormalizer
Normalizes identifier names for display output.
This class provides display-focused normalization that is separate from the matching/equality normalization used during name resolution. The key principle is:
- Matching normalization (in
IdentifierService): applies case folding and other transformations to create a canonical key for comparison - Display normalization (this class): strips delimiters but preserves the original case as written by the user
Usage Example:
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"
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionCreate a normalizer with default vendor (ANSI).DisplayNameNormalizer(EDbVendor vendor) Create a normalizer for the specified database vendor. -
Method Summary
Modifier and TypeMethodDescriptiongetMode()Get the current display mode.getTableDisplayName(TTable table) Get a display name for a table, handling various TTable configurations.booleanCheck if delimiters should be stripped.normalizeColumnName(String columnName) Normalize a column name for display.normalizeIdentifier(String identifier) Normalize a single identifier (without dots) for display.normalizeObjectName(TObjectName objectName) Normalize an object name (table or column) for display.normalizeQualifiedName(String qualifiedName) Normalize a qualified name (e.g., schema.table.column) for display.normalizeTableName(TTable table) Normalize a table name for display.setMode(DisplayNameMode mode) Set the display mode.setStripDelimiters(boolean stripDelimiters) Set whether to strip delimiters.stripAllDelimiters(String identifier) Strip all SQL delimiters from an identifier.toString()
-
Constructor Details
-
DisplayNameNormalizer
Create a normalizer for the specified database vendor.- Parameters:
vendor- the database vendor (determines delimiter style)
-
DisplayNameNormalizer
public DisplayNameNormalizer()Create a normalizer with default vendor (ANSI).
-
-
Method Details
-
getMode
Get the current display mode. -
setMode
Set the display mode.- Parameters:
mode- the display mode- Returns:
- this normalizer for chaining
-
isStripDelimiters
Check if delimiters should be stripped. -
setStripDelimiters
Set whether to strip delimiters.- Parameters:
stripDelimiters- true to strip delimiters- Returns:
- this normalizer for chaining
-
normalizeTableName
Normalize a table name for display.- Parameters:
table- the table object- Returns:
- the normalized display name
-
normalizeObjectName
Normalize an object name (table or column) for display.- Parameters:
objectName- the object name node- Returns:
- the normalized display name
-
normalizeColumnName
Normalize a column name for display.- Parameters:
columnName- the column name (may include table prefix)- Returns:
- the normalized display name
-
normalizeQualifiedName
Normalize a qualified name (e.g., schema.table.column) for display.This method handles multi-part names by normalizing each segment separately while preserving the dot separators.
- Parameters:
qualifiedName- the qualified name- Returns:
- the normalized display name
-
normalizeIdentifier
Normalize a single identifier (without dots) for display.- Parameters:
identifier- the identifier- Returns:
- the normalized identifier
-
stripAllDelimiters
Strip all SQL delimiters from an identifier.Handles multiple delimiter styles:
- Double quotes:
"name"→name - Backticks:
`name`→name - Square brackets:
[name]→name - Single quotes (for some vendors):
'name'→name
- Parameters:
identifier- the identifier (may be quoted)- Returns:
- the identifier without delimiters
- Double quotes:
-
getTableDisplayName
Get a display name for a table, handling various TTable configurations.- Parameters:
table- the table- Returns:
- the display name
-
toString
-