## org.hibernate.dialect.function
Class AnsiTrimEmulationFunction

    java.lang.Object
      org.hibernate.dialect.function.AbstractAnsiTrimEmulationFunction
          org.hibernate.dialect.function.AnsiTrimEmulationFunction

All Implemented Interfaces:
  SQLFunction

    public class AnsiTrimEmulationFunction

extends AbstractAnsiTrimEmulationFunction

A `SQLFunction` implementation that emulates the ANSI SQL trim function on dialects which do not support the full definition. However, this function definition does assume the availability of ltrim, rtrim, and replace functions which it uses in various combinations to emulate the desired ANSI trim() functionality.

Field Summary
`static String` `BOTH_SPACE_TRIM_FROM_TEMPLATE`
`static String` `BOTH_SPACE_TRIM_TEMPLATE`
`static String` `BOTH_TRIM_TEMPLATE` A template for the series of calls required to trim non-space chars from both the beginning and the end of text.
`static String` `LEADING_SPACE_TRIM_TEMPLATE`
`static String` `LEADING_TRIM_TEMPLATE` A template for the series of calls required to trim non-space chars from the beginning of text.
`static String` `LTRIM`
`static String` `REPLACE`
`static String` `RTRIM`
`static String` `SPACE_PLACEHOLDER`
`static String` `TRAILING_SPACE_TRIM_TEMPLATE`
`static String` `TRAILING_TRIM_TEMPLATE` A template for the series of calls required to trim non-space chars from the end of text.

Constructor Summary
`AnsiTrimEmulationFunction()` Constructs a new AnsiTrimEmulationFunction using `LTRIM`, `RTRIM`, and `REPLACE` respectively.
`AnsiTrimEmulationFunction(String ltrimFunctionName, String rtrimFunctionName, String replaceFunctionName)` Constructs a `trim()` emulation function definition using the specified function calls.

Method Summary
`protected SQLFunction` `resolveBothSpaceTrimFromFunction()` Resolve the function definition which should be used to trim both leading and trailing spaces.
`protected SQLFunction` `resolveBothSpaceTrimFunction()` Resolve the function definition which should be used to trim both leading and trailing spaces.
`protected SQLFunction` `resolveBothTrimFunction()` Resolve the function definition which should be used to trim the specified character from both the beginning (leading) and end (trailing) of the trim source.
`protected SQLFunction` `resolveLeadingSpaceTrimFunction()` Resolve the function definition which should be used to trim leading spaces.
`protected SQLFunction` `resolveLeadingTrimFunction()` Resolve the function definition which should be used to trim the specified character from the beginning (leading) of the trim source.
`protected SQLFunction` `resolveTrailingSpaceTrimFunction()` Resolve the function definition which should be used to trim trailing spaces.
`protected SQLFunction` `resolveTrailingTrimFunction()` Resolve the function definition which should be used to trim the specified character from the end (trailing) of the trim source.

Methods inherited from class org.hibernate.dialect.function.AbstractAnsiTrimEmulationFunction
`getReturnType, hasArguments, hasParenthesesIfNoArguments, render`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### LTRIM

    public static final String LTRIM

See Also:
  Constant Field Values

### RTRIM

    public static final String RTRIM

See Also:
  Constant Field Values

### REPLACE

    public static final String REPLACE

See Also:
  Constant Field Values

### SPACE_PLACEHOLDER

    public static final String SPACE_PLACEHOLDER

See Also:
  Constant Field Values

### LEADING_SPACE_TRIM_TEMPLATE

    public static final String LEADING_SPACE_TRIM_TEMPLATE

See Also:
  Constant Field Values

### TRAILING_SPACE_TRIM_TEMPLATE

    public static final String TRAILING_SPACE_TRIM_TEMPLATE

See Also:
  Constant Field Values

### BOTH_SPACE_TRIM_TEMPLATE

    public static final String BOTH_SPACE_TRIM_TEMPLATE

See Also:
  Constant Field Values

### BOTH_SPACE_TRIM_FROM_TEMPLATE

    public static final String BOTH_SPACE_TRIM_FROM_TEMPLATE

See Also:
  Constant Field Values

### LEADING_TRIM_TEMPLATE

    public static final String LEADING_TRIM_TEMPLATE

  A template for the series of calls required to trim non-space chars from the beginning of text.

  NOTE : essentially we:
  - replace all space chars with the text '${space}$'
  - replace all the actual replacement chars with space chars
  - perform left-trimming (that removes any of the space chars we just added which occur at the beginning of the text)
  - replace all space chars with the replacement char
  - replace all the '${space}$' text with space chars

  See Also:
    Constant Field Values

### TRAILING_TRIM_TEMPLATE

    public static final String TRAILING_TRIM_TEMPLATE

  A template for the series of calls required to trim non-space chars from the end of text.

  NOTE: essentially the same series of calls as outlined in `LEADING_TRIM_TEMPLATE` except that here, instead of left-trimming the added spaces, we right-trim them to remove them from the end of the text.

  See Also:
    Constant Field Values

### BOTH_TRIM_TEMPLATE

    public static final String BOTH_TRIM_TEMPLATE

  A template for the series of calls required to trim non-space chars from both the beginning and the end of text.

  NOTE: again, we have a series of calls that is essentially the same as outlined in `LEADING_TRIM_TEMPLATE` except that here we perform both left (leading) and right (trailing) trimming.

  See Also:
    Constant Field Values

Constructor Detail

### AnsiTrimEmulationFunction

    public AnsiTrimEmulationFunction()

  Constructs a new AnsiTrimEmulationFunction using `LTRIM`, `RTRIM`, and `REPLACE` respectively.

  See Also:
    `AnsiTrimEmulationFunction(String,String,String)`

### AnsiTrimEmulationFunction

    public AnsiTrimEmulationFunction(String ltrimFunctionName,
                                     String rtrimFunctionName,
                                     String replaceFunctionName)

  Constructs a `trim()` emulation function definition using the specified function calls.

  Parameters:
    `ltrimFunctionName` - The `left trim` function to use.
    `rtrimFunctionName` - The `right trim` function to use.
    `replaceFunctionName` - The `replace` function to use.

Method Detail

### resolveBothSpaceTrimFunction

    protected SQLFunction resolveBothSpaceTrimFunction()

  Resolve the function definition which should be used to trim both leading and trailing spaces.

  In this form, the imput arguments is missing the `FROM` keyword.

  Specified by:
    `resolveBothSpaceTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveBothSpaceTrimFromFunction

    protected SQLFunction resolveBothSpaceTrimFromFunction()

  Resolve the function definition which should be used to trim both leading and trailing spaces.

  The same as {#link resolveBothSpaceTrimFunction} except that here the`FROM` is included and will need to be accounted for during `SQLFunction.render(org.hibernate.type.Type, java.util.List, org.hibernate.engine.spi.SessionFactoryImplementor)` processing.

  Specified by:
    `resolveBothSpaceTrimFromFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveLeadingSpaceTrimFunction

    protected SQLFunction resolveLeadingSpaceTrimFunction()

  Resolve the function definition which should be used to trim leading spaces.

  Specified by:
    `resolveLeadingSpaceTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveTrailingSpaceTrimFunction

    protected SQLFunction resolveTrailingSpaceTrimFunction()

  Resolve the function definition which should be used to trim trailing spaces.

  Specified by:
    `resolveTrailingSpaceTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveBothTrimFunction

    protected SQLFunction resolveBothTrimFunction()

  Resolve the function definition which should be used to trim the specified character from both the beginning (leading) and end (trailing) of the trim source.

  Specified by:
    `resolveBothTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveLeadingTrimFunction

    protected SQLFunction resolveLeadingTrimFunction()

  Resolve the function definition which should be used to trim the specified character from the beginning (leading) of the trim source.

  Specified by:
    `resolveLeadingTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

### resolveTrailingTrimFunction

    protected SQLFunction resolveTrailingTrimFunction()

  Resolve the function definition which should be used to trim the specified character from the end (trailing) of the trim source.

  Specified by:
    `resolveTrailingTrimFunction` in class `AbstractAnsiTrimEmulationFunction`
  Returns:
    The sql function

Copyright © 2001-2012 Red Hat, Inc. All Rights Reserved.