org.springframework.data.relational.core.sql

## Class SimpleFunction

- java.lang.Object
- - org.springframework.data.relational.core.sql.SimpleFunction

All Implemented Interfaces:
  Expression, Segment, Visitable

    public class SimpleFunction
    extends Object
    implements Expression

Simple function accepting one or more `Expression`s.

Since:
  1.1
Author:
  Mark Paluch

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`SimpleFunction` `as(SqlIdentifier alias)` Expose this function result under a column `alias`.
`SimpleFunction` `as(String alias)` Expose this function result under a column `alias`.
`static SimpleFunction` `create(String functionName, List<Expression> expressions)` Creates a new `SimpleFunction` given `functionName` and `List` of `Expression`s.
`boolean` `equals(Object obj)` Check whether this `Segment` is equal to another `Segment`.
`List<Expression>` `getExpressions()`
`String` `getFunctionName()`
`int` `hashCode()` Generate a hash code from this`Segment`.
`String` `toString()` Return a SQL string representation of this `Segment`.
`void` `visit(Visitor visitor)` Accept a `Visitor` visiting this `Visitable` and its nested `Visitable`s if applicable.

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.springframework.data.relational.core.sql.Segment

`equals, hashCode`

### Methods inherited from interface org.springframework.data.relational.core.sql.Visitable

`visit`

### Method Detail

#### create

    public static SimpleFunction create(String functionName,
                                        List<Expression> expressions)

Creates a new `SimpleFunction` given `functionName` and `List` of `Expression`s.

Parameters:
  `functionName` - must not be null.
  `expressions` - zero or many `Expression`s, must not be null.
Returns:

#### as

    public SimpleFunction as(String alias)

Expose this function result under a column `alias`.

Parameters:
  `alias` - column alias name, must not null or empty.
Returns:
  the aliased `SimpleFunction`.

#### as

    public SimpleFunction as(SqlIdentifier alias)

Expose this function result under a column `alias`.

Parameters:
  `alias` - column alias name, must not null.
Returns:
  the aliased `SimpleFunction`.
Since:
  2.0

#### getFunctionName

    public String getFunctionName()

Returns:
  the function name.

#### getExpressions

    public List<Expression> getExpressions()

Returns:
  the function arguments.
Since:
  2.0

#### toString

    public String toString()

Description copied from interface: `Segment`
Return a SQL string representation of this `Segment`.

The representation is intended for debugging purposes and an approximation to the generated SQL. While it might work in the context of a specific dialect, you should not that the `Segment.toString()` representation works across multiple databases.

Specified by:
  `toString` in interface `Segment`
Overrides:
  `toString` in class `Object`
Returns:
  a SQL string representation of this `Segment`.

#### visit

    public void visit(Visitor visitor)

Description copied from interface: `Visitable`
Accept a `Visitor` visiting this `Visitable` and its nested `Visitable`s if applicable.

Specified by:
  `visit` in interface `Visitable`
Parameters:
  `visitor` - the visitor to notify, must not be null.

#### hashCode

    public int hashCode()

Description copied from interface: `Segment`
Generate a hash code from this`Segment`.

Hashcode typically derives from the `Segment.toString()` representation so two `Segment`s yield the same `Segment.hashCode()` if their `Segment.toString()` representation matches.

Specified by:
  `hashCode` in interface `Segment`
Overrides:
  `hashCode` in class `Object`
Returns:
  a hash code value for this object.

#### equals

    public boolean equals(Object obj)

Description copied from interface: `Segment`
Check whether this `Segment` is equal to another `Segment`.

Equality is typically given if the `Segment.toString()` representation matches.

Specified by:
  `equals` in interface `Segment`
Overrides:
  `equals` in class `Object`
Parameters:
  `obj` - the reference object with which to compare.
Returns:
  true if this object is the same as the `other` argument; false otherwise.