Interface SqlIdentifier

All Superinterfaces:
Iterable<SqlIdentifier>, Streamable<SqlIdentifier>, Supplier<Stream<SqlIdentifier>>

public interface SqlIdentifier extends Streamable<SqlIdentifier>
Represents a named object that exists in the database like a table name or a column name. SQL identifiers are created from a name with specifying whether the name should be quoted or unquoted.

SqlIdentifier renders its name using IdentifierProcessing rules. Use getReference(IdentifierProcessing) to refer to an object using the identifier when e.g. obtaining values from a result or providing values for a prepared statement. toSql(IdentifierProcessing) renders the identifier for SQL statement usage.

SqlIdentifier objects are immutable. Calling transformational methods such as transform(UnaryOperator) creates a new instance.

SqlIdentifier are composable so an identifier may consist of a single identifier part or can be composed from multiple parts. Composed identifier can be traversed with Streamable.stream() or Iterable.iterator(). The iteration order depends on the actual composition ordering.

Since:
2.0
Author:
Jens Schauder, Mark Paluch
  • Field Details

  • Method Details

    • getReference

      String getReference(IdentifierProcessing processing)
      Return the reference name after applying IdentifierProcessing rules. The reference name is used for programmatic access to the object identified by this SqlIdentifier.
      Parameters:
      processing - identifier processing rules.
      Returns:
    • getReference

      default String getReference()
      Return the reference name without any further transformation. The reference name is used for programmatic access to the object identified by this SqlIdentifier.
      Returns:
      See Also:
    • toSql

      String toSql(IdentifierProcessing processing)
      Return the identifier for SQL usage after applying IdentifierProcessing rules. The identifier name is used to construct SQL statements.
      Parameters:
      processing - identifier processing rules.
      Returns:
    • transform

      SqlIdentifier transform(UnaryOperator<String> transformationFunction)
      Transform the SQL identifier name by applying a transformation function. The transformation function must return a valid, non-null identifier String.
      Parameters:
      transformationFunction - the transformation function. Must return a non-null identifier String.
      Returns:
      a new SqlIdentifier with the transformation applied.
    • quoted

      static SqlIdentifier quoted(String name)
      Create a new quoted identifier given name.
      Parameters:
      name - the identifier.
      Returns:
      a new quoted identifier given name.
    • unquoted

      static SqlIdentifier unquoted(String name)
      Create a new unquoted identifier given name.
      Parameters:
      name - the identifier.
      Returns:
      a new unquoted identifier given name.
    • from

      static SqlIdentifier from(SqlIdentifier... sqlIdentifiers)
      Create a new composite SqlIdentifier from one or more SqlIdentifiers.

      Composite identifiers do not allow transform(UnaryOperator) transformation.

      Parameters:
      sqlIdentifiers - the elements of the new identifier.
      Returns:
      the new composite identifier.