Class TableId

java.lang.Object
io.debezium.relational.TableId
All Implemented Interfaces:
DataCollectionId, Comparable<TableId>

@Immutable public final class TableId extends Object implements DataCollectionId, Comparable<TableId>
Unique identifier for a database table.
Author:
Randall Hauch
  • Field Details

    • catalogName

      private final String catalogName
    • schemaName

      private final String schemaName
    • tableName

      private final String tableName
    • id

      private final String id
  • Constructor Details

    • TableId

      public TableId(String catalogName, String schemaName, String tableName, Selectors.TableIdToStringMapper tableIdMapper)
      Create a new table identifier.
      Parameters:
      catalogName - the name of the database catalog that contains the table; may be null if the JDBC driver does not show a schema for this table
      schemaName - the name of the database schema that contains the table; may be null if the JDBC driver does not show a schema for this table
      tableName - the name of the table; may not be null
      tableIdMapper - the customization of fully quailified table name
    • TableId

      public TableId(String catalogName, String schemaName, String tableName)
      Create a new table identifier.
      Parameters:
      catalogName - the name of the database catalog that contains the table; may be null if the JDBC driver does not show a schema for this table
      schemaName - the name of the database schema that contains the table; may be null if the JDBC driver does not show a schema for this table
      tableName - the name of the table; may not be null
  • Method Details

    • parse

      public static TableId parse(String str)
      Parse the supplied string, extracting up to the first 3 parts into a TableID.
      Parameters:
      str - the string representation of the table identifier; may not be null
      Returns:
      the table ID, or null if it could not be parsed
    • parse

      public static TableId parse(String str, TableIdPredicates predicates)
      Parse the supplied string, extracting up to the first 3 parts into a TableID.
      Parameters:
      str - the string representation of the table identifier; may not be null
      predicates - the TableIdPredicates which determines DB specific reserved characters
      Returns:
      the table ID, or null if it could not be parsed
    • parse

      public static TableId parse(String str, boolean useCatalogBeforeSchema)
      Parse the supplied string, extracting up to the first 3 parts into a TableID.
      Parameters:
      str - the string representation of the table identifier; may not be null
      useCatalogBeforeSchema - true if the parsed string contains only 2 items and the first should be used as the catalog and the second as the table name, or false if the first should be used as the schema and the second as the table name
      Returns:
      the table ID, or null if it could not be parsed
    • parse

      public static TableId parse(String str, boolean useCatalogBeforeSchema, TableIdPredicates predicates)
      Parse the supplied string, extracting up to the first 3 parts into a TableID.
      Parameters:
      str - the string representation of the table identifier; may not be null
      useCatalogBeforeSchema - true if the parsed string contains only 2 items and the first should be used as the catalog and the second as the table name, or false if the first should be used as the schema and the second as the table name
      predicates - the TableIdPredicates which determines DB specific reserved characters
      Returns:
      the table ID, or null if it could not be parsed
    • parseParts

      public static String[] parseParts(String str)
      Parse the supplied string into its tokenized parts.
      Parameters:
      str - the string representation of the table identifier; may not be null
      Returns:
      the parts of the parsed string.
    • parseParts

      public static String[] parseParts(String str, TableIdPredicates predicates)
      Parse the supplied string into its tokenized parts.
      Parameters:
      str - the string representation of the table identifier; may not be null
      predicates - the TableIdPredicates which determines DB specific reserved characters
      Returns:
      the parts of the parsed string.
    • parse

      protected static TableId parse(String[] parts, int numParts, boolean useCatalogBeforeSchema)
      Parse the supplied string, extracting up to the first 3 parts into a TableID.
      Parameters:
      parts - the parts of the identifier; may not be null
      numParts - the number of parts to use for the table identifier
      useCatalogBeforeSchema - true if the parsed string contains only 2 items and the first should be used as the catalog and the second as the table name, or false if the first should be used as the schema and the second as the table name
      Returns:
      the table ID, or null if it could not be parsed
    • catalog

      public String catalog()
      Get the name of the JDBC catalog.
      Returns:
      the catalog name, or null if the table does not belong to a catalog
    • schema

      public String schema()
      Get the name of the JDBC schema.
      Returns:
      the JDBC schema name, or null if the table does not belong to a JDBC schema
    • table

      public String table()
      Get the name of the table.
      Returns:
      the table name; never null
    • identifier

      public String identifier()
      Specified by:
      identifier in interface DataCollectionId
    • parts

      public List<String> parts()
      Specified by:
      parts in interface DataCollectionId
    • databaseParts

      public List<String> databaseParts()
      Specified by:
      databaseParts in interface DataCollectionId
    • schemaParts

      public List<String> schemaParts()
      Specified by:
      schemaParts in interface DataCollectionId
    • compareTo

      public int compareTo(TableId that)
      Specified by:
      compareTo in interface Comparable<TableId>
    • compareToIgnoreCase

      public int compareToIgnoreCase(TableId that)
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • toDoubleQuotedString

      public String toDoubleQuotedString()
      Returns a dot-separated String representation of this identifier, quoting all name parts with the " char.
    • toDoubleQuoted

      public TableId toDoubleQuoted()
      Returns a new TableId with all parts of the identifier using " character.
    • toQuoted

      public TableId toQuoted(char quotingChar)
      Returns a new TableId that has all parts of the identifier quoted.
      Parameters:
      quotingChar - the character to be used to quote the identifier parts.
    • toQuotedString

      public String toQuotedString(char quotingChar)
      Returns a dot-separated String representation of this identifier, quoting all name parts with the given quoting char.
    • tableId

      private static String tableId(String catalog, String schema, String table)
    • quote

      private static String quote(String identifierPart, char quotingChar)
      Quotes the given identifier part, e.g. schema or table name.
    • repeat

      private static String repeat(char quotingChar)
    • toLowercase

      public TableId toLowercase()