## org.hibernate.dialect.function
Class AbstractAnsiTrimEmulationFunction

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

All Implemented Interfaces:
  SQLFunction

Direct Known Subclasses:
  AnsiTrimEmulationFunction

    public abstract class AbstractAnsiTrimEmulationFunction

extends Object
implements SQLFunction

A `SQLFunction` providing support for implementing TRIM functionality (as defined by both the ANSI SQL and JPA specs) in cases where the dialect may not support the full `trim` function itself.

Follows the template pattern in order to implement the `render(org.hibernate.type.Type, java.util.List, org.hibernate.engine.SessionFactoryImplementor)` method.

Author:
  Steve Ebersole

Constructor Summary
`AbstractAnsiTrimEmulationFunction()`

Method Summary
`Type` `getReturnType(Type argumentType, Mapping mapping)` The return type of the function.
`boolean` `hasArguments()` Does this function have any arguments?
`boolean` `hasParenthesesIfNoArguments()` If there are no arguments, are parentheses required?
`String` `render(Type argumentType, List args, SessionFactoryImplementor factory)` Render the function call as SQL fragment.
`protected abstract SQLFunction` `resolveBothSpaceTrimFromFunction()` Resolve the function definition which should be used to trim both leading and trailing spaces.
`protected abstract SQLFunction` `resolveBothSpaceTrimFunction()` Resolve the function definition which should be used to trim both leading and trailing spaces.
`protected abstract 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 abstract SQLFunction` `resolveLeadingSpaceTrimFunction()` Resolve the function definition which should be used to trim leading spaces.
`protected abstract SQLFunction` `resolveLeadingTrimFunction()` Resolve the function definition which should be used to trim the specified character from the beginning (leading) of the trim source.
`protected abstract SQLFunction` `resolveTrailingSpaceTrimFunction()` Resolve the function definition which should be used to trim trailing spaces.
`protected abstract 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 java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### AbstractAnsiTrimEmulationFunction

    public AbstractAnsiTrimEmulationFunction()

Method Detail

### hasArguments

    public final boolean hasArguments()

  Does this function have any arguments?

  Specified by:
    `hasArguments` in interface `SQLFunction`
  Returns:
    True if the function expects to have parameters; false otherwise.

### hasParenthesesIfNoArguments

    public final boolean hasParenthesesIfNoArguments()

  If there are no arguments, are parentheses required?

  Specified by:
    `hasParenthesesIfNoArguments` in interface `SQLFunction`
  Returns:
    True if a no-arg call of this function requires parentheses.

### getReturnType

    public final Type getReturnType(Type argumentType,
                                    Mapping mapping)
                             throws QueryException

  The return type of the function. May be either a concrete type which is preset, or variable depending upon the type of the first function argument.

  Note, the 'firstArgumentType' parameter should match the one passed into `SQLFunction.render(org.hibernate.type.Type, java.util.List, org.hibernate.engine.SessionFactoryImplementor)`

  Specified by:
    `getReturnType` in interface `SQLFunction`
  Parameters:
    `argumentType` - The type of the first argument
    `mapping` - The mapping source.
  Returns:
    The type to be expected as a return.
  Throws:
    `QueryException` - Indicates an issue resolving the return type.

### render

    public final String render(Type argumentType,
                               List args,
                               SessionFactoryImplementor factory)
                        throws QueryException

  Render the function call as SQL fragment.

  Note, the 'firstArgumentType' parameter should match the one passed into `SQLFunction.getReturnType(org.hibernate.type.Type, org.hibernate.engine.Mapping)`

  Specified by:
    `render` in interface `SQLFunction`
  Parameters:
    `argumentType` - The type of the first argument
    `args` - The function arguments
    `factory` - The SessionFactory
  Returns:
    The rendered function call
  Throws:
    `QueryException` - Indicates a problem rendering the function call.

### resolveBothSpaceTrimFunction

    protected abstract 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.

  Returns:
    The sql function

### resolveBothSpaceTrimFromFunction

    protected abstract 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.SessionFactoryImplementor)` processing.

  Returns:
    The sql function

### resolveLeadingSpaceTrimFunction

    protected abstract SQLFunction resolveLeadingSpaceTrimFunction()

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

  Returns:
    The sql function

### resolveTrailingSpaceTrimFunction

    protected abstract SQLFunction resolveTrailingSpaceTrimFunction()

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

  Returns:
    The sql function

### resolveBothTrimFunction

    protected abstract 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.

  Returns:
    The sql function

### resolveLeadingTrimFunction

    protected abstract SQLFunction resolveLeadingTrimFunction()

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

  Returns:
    The sql function

### resolveTrailingTrimFunction

    protected abstract SQLFunction resolveTrailingTrimFunction()

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

  Returns:
    The sql function

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