Class DisplayNameNormalizer

Object
gudusoft.gsqlparser.resolver2.format.DisplayNameNormalizer

public class DisplayNameNormalizer extends Object
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 Details

    • DisplayNameNormalizer

      Create a normalizer for the specified database vendor.
      Parameters:
      vendor - the database vendor (determines delimiter style)
    • 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

      public boolean isStripDelimiters()
      Check if delimiters should be stripped.
    • setStripDelimiters

      public DisplayNameNormalizer setStripDelimiters(boolean stripDelimiters)
      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

      public String normalizeObjectName(TObjectName objectName)
      Normalize an object name (table or column) for display.
      Parameters:
      objectName - the object name node
      Returns:
      the normalized display name
    • normalizeColumnName

      public String normalizeColumnName(String columnName)
      Normalize a column name for display.
      Parameters:
      columnName - the column name (may include table prefix)
      Returns:
      the normalized display name
    • normalizeQualifiedName

      public String normalizeQualifiedName(String qualifiedName)
      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

      public String normalizeIdentifier(String identifier)
      Normalize a single identifier (without dots) for display.
      Parameters:
      identifier - the identifier
      Returns:
      the normalized identifier
    • stripAllDelimiters

      public String stripAllDelimiters(String identifier)
      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
    • getTableDisplayName

      Get a display name for a table, handling various TTable configurations.
      Parameters:
      table - the table
      Returns:
      the display name
    • toString

      public String toString()
      Overrides:
      toString in class Object