org.springframework.data.relational.core.sql

## 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 Summary

Fields
`static SqlIdentifier` `EMPTY` Null-object.

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Default Methods
`static SqlIdentifier` `from(SqlIdentifier... sqlIdentifiers)` Create a new composite `SqlIdentifier` from one or more `SqlIdentifier`s.
`default String` `getReference()` Return the reference name without any further transformation.
`String` `getReference(IdentifierProcessing processing)` Return the reference name after applying `IdentifierProcessing` rules.
`static SqlIdentifier` `quoted(String name)` Create a new quoted identifier given `name`.
`String` `toSql(IdentifierProcessing processing)` Return the identifier for SQL usage after applying `IdentifierProcessing` rules.
`SqlIdentifier` `transform(UnaryOperator<String> transformationFunction)` Transform the SQL identifier name by applying a `transformation function`.
`static SqlIdentifier` `unquoted(String name)` Create a new unquoted identifier given `name`.

### Methods inherited from interface org.springframework.data.util.Streamable

`and, and, and, and, empty, filter, flatMap, get, isEmpty, map, of, of, of, stream, toList, toSet, toStreamable, toStreamable`

### Methods inherited from interface java.lang.Iterable

`forEach, iterator, spliterator`

### Field Detail

#### EMPTY

    static final SqlIdentifier EMPTY

Null-object.

### Method Detail

#### 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:
  `IdentifierProcessing.NONE`

#### 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 `SqlIdentifier`s.

Composite identifiers do not allow `transform(UnaryOperator)` transformation.

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