public final class TrimExpression extends AbstractSingleEncapsulatedExpression
trim_character
is a single-character string literal or a character-valued input parameter (i.e., char or
Character). If a trim specification is not provided, BOTH is assumed. The TRIM
function returns the trimmed string.
JPA 1.0, 2.0:
expression ::= TRIM([[trim_specification] [trim_character] FROM] string_primary)
trim_character ::= string_literal | input_parameter
JPA 2.1:
expression ::= TRIM([[trim_specification] [trim_character] FROM] string_expression)
trim_character ::= string_literal | input_parameter
UPDATE Student st SET st.sname=TRIM(st.sname)
Modifier and Type | Class and Description |
---|---|
static class |
TrimExpression.Specification
The possible ways to trim the string.
|
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCORE
ABS, ALL, AND, ANY, AS, AS_OF, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, CONNECT_BY, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXCEPT, EXISTS, EXTRACT, FALSE, FETCH, FIRST, FROM, FUNC, FUNCTION, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, INTERSECT, IS, IS_EMPTY, IS_NOT_EMPTY, IS_NOT_NULL, IS_NULL, JOIN, JOIN_FETCH, KEY, LAST, LEADING, LEFT, LEFT_JOIN, LEFT_JOIN_FETCH, LEFT_OUTER_JOIN, LEFT_OUTER_JOIN_FETCH, LENGTH, LIKE, LOCATE, LOWER, LOWER_THAN, LOWER_THAN_OR_EQUAL, MAX, MEMBER, MEMBER_OF, MIN, MINUS, MOD, MULTIPLICATION, NAMED_PARAMETER, NEW, NOT, NOT_BETWEEN, NOT_EQUAL, NOT_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, NULLS, NULLS_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, ORDER_SIBLINGS_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SCN, SELECT, SET, SIZE, SOME, SQL, SQRT, START_WITH, SUBSTRING, SUM, TABLE, THEN, TIMESTAMP, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
Constructor and Description |
---|
TrimExpression(AbstractExpression parent)
Creates a new
TrimExpression . |
Modifier and Type | Method and Description |
---|---|
void |
accept(ExpressionVisitor visitor)
Visits this
Expression by the given visitor . |
void |
acceptChildren(ExpressionVisitor visitor)
Visits the children of this
Expression . |
protected void |
addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the
Expressions representing the encapsulated Expression . |
java.lang.String |
getActualFromIdentifier()
Returns the actual FROM identifier found in the string representation of the JPQL
query, which has the actual case that was used.
|
java.lang.String |
getActualSpecificationIdentifier()
Returns the actual specification identifier found in the string representation of the JPQL
query, which has the actual case that was used.
|
java.lang.String |
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.
|
JPQLQueryBNF |
getQueryBNF()
Returns the BNF of this
Expression . |
TrimExpression.Specification |
getSpecification()
Returns the specification which specifies how to trim the string.
|
Expression |
getTrimCharacter()
Returns the character used for trimming the string.
|
boolean |
hasEncapsulatedExpression()
Determines whether something was parsed after the left parenthesis.
|
boolean |
hasFrom()
Determines whether the identifier FROM was part of the query.
|
boolean |
hasSpaceAfterFrom()
Determines whether a whitespace was found after FROM.
|
boolean |
hasSpaceAfterSpecification()
Determines whether a whitespace was found after the way the string is trimmed.
|
boolean |
hasSpaceAfterTrimCharacter()
Determines whether a whitespace was found after the character used to trim the string.
|
boolean |
hasSpecification()
Determines whether the way the trim is trimmed was parsed.
|
boolean |
hasTrimCharacter()
Determines whether the character used to trim the string was specified.
|
protected void |
parseEncapsulatedExpression(WordParser wordParser,
int whitespaceCount,
boolean tolerant)
Parses the encapsulated expression by starting at the current position, which is part of the
given
WordParser . |
protected void |
toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
boolean actual)
Generates a string representation of the encapsulated
Expression . |
addChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
acceptUnknownVisitor, acceptUnknownVisitor, buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, calculatePosition, children, findFallBackExpressionFactory, getExpressionFactory, getExpressionRegistry, getGrammar, getIdentifierVersion, getJPAVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, getText, handleAggregate, handleCollection, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseUsingExpressionFactory, populatePosition, rebuildActualText, rebuildParsedText, setParent, setText, shouldParseWithFactoryFirst, shouldSkipLiteral, toActualText, toParsedText, toString
public TrimExpression(AbstractExpression parent)
TrimExpression
.parent
- The parent of this expressionpublic void accept(ExpressionVisitor visitor)
Expression
by the given visitor
.visitor
- The ExpressionVisitor
to visit this objectpublic void acceptChildren(ExpressionVisitor visitor)
Expression
. This method can be used to optimize traversing
the children since a new list is not created every time Expression.children()
is called.
This does not traverse the Expression
sub-hierarchy, use a subclass of
AbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.
acceptChildren
in interface Expression
acceptChildren
in class AbstractSingleEncapsulatedExpression
visitor
- The visitor
to visit the children of this object.protected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Expressions
representing the encapsulated Expression
.addOrderedEncapsulatedExpressionTo
in class AbstractSingleEncapsulatedExpression
children
- The list used to store the string representation of the encapsulated Expression
public java.lang.String getEncapsulatedExpressionQueryBNFId()
getEncapsulatedExpressionQueryBNFId
in class AbstractSingleEncapsulatedExpression
public java.lang.String getActualFromIdentifier()
public java.lang.String getActualSpecificationIdentifier()
public JPQLQueryBNF getQueryBNF()
Expression
.JPQLQueryBNF
, which represents the grammar of this Expression
public TrimExpression.Specification getSpecification()
public Expression getTrimCharacter()
public boolean hasEncapsulatedExpression()
hasEncapsulatedExpression
in class AbstractSingleEncapsulatedExpression
true
if something was parsed; false
otherwisepublic boolean hasFrom()
true
if the identifier FROM was parsed; false
otherwisepublic boolean hasSpaceAfterFrom()
true
if there was a whitespace after FROM; false
otherwisepublic boolean hasSpaceAfterSpecification()
true
if there was a whitespace after the trim specification;
false
otherwisepublic boolean hasSpaceAfterTrimCharacter()
true
if there was a whitespace after the trim character;
false
otherwisepublic boolean hasSpecification()
true
if the query contained the way the trim needs to
be trimmed; false
otherwisepublic boolean hasTrimCharacter()
true
if the character used for trimming was specified; false
otherwiseprotected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant)
WordParser
.parseEncapsulatedExpression
in class AbstractSingleEncapsulatedExpression
wordParser
- The text to parse based on the current position of the cursorwhitespaceCount
- The number of whitespace characters that were parsed after '('tolerant
- Determines whether the parsing system should be tolerant, meaning if it should
try to parse invalid or incomplete queriesprotected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean actual)
Expression
.toParsedTextEncapsulatedExpression
in class AbstractSingleEncapsulatedExpression
writer
- The buffer used to append the encapsulated Expression
's string
representationactual
- Determines whether to include any characters that are considered
virtual, i.e. that was parsed when the query is incomplete and is needed for functionality
like content assist