Package 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
ASQLFunction
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
Fields Modifier and Type Field Description static String
BOTH_SPACE_TRIM_FROM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming both leading and trailing spaces, with the optional FROM keyword.static String
BOTH_SPACE_TRIM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming both leading and trailing spacesstatic 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
The SQLFunctionTemplate pattern for the trimming leading spacesstatic 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
The defaultltrim
function namestatic String
REPLACE
The defaultreplace
function namestatic String
RTRIM
The defaultrtrim
function namestatic String
SPACE_PLACEHOLDER
The placeholder used to represent whitespacestatic String
TRAILING_SPACE_TRIM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming trailing spacesstatic String
TRAILING_TRIM_TEMPLATE
A template for the series of calls required to trim non-space chars from the end of text.
-
Constructor Summary
Constructors Constructor Description AnsiTrimEmulationFunction()
AnsiTrimEmulationFunction(String ltrimFunctionName, String rtrimFunctionName, String replaceFunctionName)
Constructs a trim() emulation function definition using the specified function calls.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description 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
-
-
-
-
Field Detail
-
LTRIM
public static final String LTRIM
The defaultltrim
function name- See Also:
- Constant Field Values
-
RTRIM
public static final String RTRIM
The defaultrtrim
function name- See Also:
- Constant Field Values
-
REPLACE
public static final String REPLACE
The defaultreplace
function name- See Also:
- Constant Field Values
-
SPACE_PLACEHOLDER
public static final String SPACE_PLACEHOLDER
The placeholder used to represent whitespace- See Also:
- Constant Field Values
-
LEADING_SPACE_TRIM_TEMPLATE
public static final String LEADING_SPACE_TRIM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming leading spaces- See Also:
- Constant Field Values
-
TRAILING_SPACE_TRIM_TEMPLATE
public static final String TRAILING_SPACE_TRIM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming trailing spaces- See Also:
- Constant Field Values
-
BOTH_SPACE_TRIM_TEMPLATE
public static final String BOTH_SPACE_TRIM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming both leading and trailing spaces- See Also:
- Constant Field Values
-
BOTH_SPACE_TRIM_FROM_TEMPLATE
public static final String BOTH_SPACE_TRIM_FROM_TEMPLATE
The SQLFunctionTemplate pattern for the trimming both leading and trailing spaces, with the optional FROM keyword. Different because we need to skip the FROM keyword in the SQLFunctionTemplate processing- 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 inLEADING_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 inLEADING_TRIM_TEMPLATE
except that here we perform both left (leading) and right (trailing) trimming.- See Also:
- Constant Field Values
-
-
Constructor Detail
-
AnsiTrimEmulationFunction
public AnsiTrimEmulationFunction()
-
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 classAbstractAnsiTrimEmulationFunction
- 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 theFROM is included and will need to be accounted for duringSQLFunction.render(org.hibernate.type.Type, java.util.List, org.hibernate.engine.spi.SessionFactoryImplementor)
processing.- Specified by:
resolveBothSpaceTrimFromFunction
in classAbstractAnsiTrimEmulationFunction
- Returns:
- The sql function
-
resolveLeadingSpaceTrimFunction
protected SQLFunction resolveLeadingSpaceTrimFunction()
Resolve the function definition which should be used to trim leading spaces.- Specified by:
resolveLeadingSpaceTrimFunction
in classAbstractAnsiTrimEmulationFunction
- Returns:
- The sql function
-
resolveTrailingSpaceTrimFunction
protected SQLFunction resolveTrailingSpaceTrimFunction()
Resolve the function definition which should be used to trim trailing spaces.- Specified by:
resolveTrailingSpaceTrimFunction
in classAbstractAnsiTrimEmulationFunction
- 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 classAbstractAnsiTrimEmulationFunction
- 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 classAbstractAnsiTrimEmulationFunction
- 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 classAbstractAnsiTrimEmulationFunction
- Returns:
- The sql function
-
-