Class TrimExpression
java.lang.Object
org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
org.eclipse.persistence.jpa.jpql.parser.TrimExpression
- All Implemented Interfaces:
Expression
The TRIM function trims the specified character from a string. If the character to be
trimmed is not specified, it is assumed to be space (or blank). The optional
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:
BNF:
expression ::= TRIM([[trim_specification] [trim_character] FROM] string_primary)BNF:
trim_character ::= string_literal | input_parameterJPA 2.1:
BNF:
expression ::= TRIM([[trim_specification] [trim_character] FROM] string_expression)BNF:
trim_character ::= string_literal | input_parameterExample:
UPDATE Student st SET st.sname=TRIM(st.sname)- Version:
- 2.5
- Author:
- Pascal Filion
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumThe possible ways to trim the string. -
Field Summary
Fields inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
COMMA, DOT, DOUBLE_QUOTE, LEFT_CURLY_BRACKET, LEFT_PARENTHESIS, NOT_DEFINED, RIGHT_CURLY_BRACKET, RIGHT_PARENTHESIS, SINGLE_QUOTE, SPACE, UNDERSCOREFields inherited from interface org.eclipse.persistence.jpa.jpql.parser.Expression
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaccept(ExpressionVisitor visitor) Visits thisExpressionby the givenvisitor.voidacceptChildren(ExpressionVisitor visitor) Visits the children of thisExpression.protected voidaddOrderedEncapsulatedExpressionTo(List<Expression> children) Adds theExpressionsrepresenting the encapsulatedExpression.Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.Returns the actual specification identifier found in the string representation of the JPQL query, which has the actual case that was used.Returns the BNF used to parse the encapsulated expression.Returns the BNF of thisExpression.Returns the specification which specifies how to trim the string.Returns the character used for trimming the string.booleanDetermines whether something was parsed after the left parenthesis.booleanhasFrom()Determines whether the identifier FROM was part of the query.booleanDetermines whether a whitespace was found after FROM.booleanDetermines whether a whitespace was found after the way the string is trimmed.booleanDetermines whether a whitespace was found after the character used to trim the string.booleanDetermines whether the way the trim is trimmed was parsed.booleanDetermines whether the character used to trim the string was specified.protected voidparseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant) Parses the encapsulated expression by starting at the current position, which is part of the givenWordParser.protected voidtoParsedTextEncapsulatedExpression(StringBuilder writer, boolean actual) Generates a string representation of the encapsulatedExpression.Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
addChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpressionMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedTextMethods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
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
-
Constructor Details
-
TrimExpression
Creates a newTrimExpression.- Parameters:
parent- The parent of this expression
-
-
Method Details
-
accept
Description copied from interface:ExpressionVisits thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto visit this object
-
acceptChildren
Description copied from interface:ExpressionVisits the children of thisExpression. This method can be used to optimize traversing the children since a new list is not created every timeExpression.children()is called.This does not traverse the
Expressionsub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitorin order to traverse the entire sub-hierarchy.- Specified by:
acceptChildrenin interfaceExpression- Overrides:
acceptChildrenin classAbstractSingleEncapsulatedExpression- Parameters:
visitor- Thevisitorto visit the children of this object.
-
addOrderedEncapsulatedExpressionTo
Description copied from class:AbstractEncapsulatedExpressionAdds theExpressionsrepresenting the encapsulatedExpression.- Overrides:
addOrderedEncapsulatedExpressionToin classAbstractSingleEncapsulatedExpression- Parameters:
children- The list used to store the string representation of the encapsulatedExpression
-
getEncapsulatedExpressionQueryBNFId
Description copied from class:AbstractSingleEncapsulatedExpressionReturns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFIdin classAbstractSingleEncapsulatedExpression- Returns:
- The BNF used to parse the encapsulated expression
-
getActualFromIdentifier
Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The FROM identifier that was actually parsed, or an empty string if it was not parsed
-
getActualSpecificationIdentifier
Returns the actual specification identifier found in the string representation of the JPQL query, which has the actual case that was used.- Returns:
- The specification identifier that was actually parsed, or an empty string if it was not parsed
-
getQueryBNF
Description copied from interface:ExpressionReturns the BNF of thisExpression.- Returns:
- The
JPQLQueryBNF, which represents the grammar of thisExpression
-
getSpecification
Returns the specification which specifies how to trim the string.- Returns:
- One of the available choices for trimming the string
-
getTrimCharacter
Returns the character used for trimming the string.- Returns:
- The character, if one was parsed, that will be used to trim the string. If the character was not specified, then '\0' is the character
-
hasEncapsulatedExpression
public boolean hasEncapsulatedExpression()Description copied from class:AbstractEncapsulatedExpressionDetermines whether something was parsed after the left parenthesis.- Overrides:
hasEncapsulatedExpressionin classAbstractSingleEncapsulatedExpression- Returns:
trueif something was parsed;falseotherwise
-
hasFrom
public boolean hasFrom()Determines whether the identifier FROM was part of the query.- Returns:
trueif the identifier FROM was parsed;falseotherwise
-
hasSpaceAfterFrom
public boolean hasSpaceAfterFrom()Determines whether a whitespace was found after FROM.- Returns:
trueif there was a whitespace after FROM;falseotherwise
-
hasSpaceAfterSpecification
public boolean hasSpaceAfterSpecification()Determines whether a whitespace was found after the way the string is trimmed.- Returns:
trueif there was a whitespace after the trim specification;falseotherwise
-
hasSpaceAfterTrimCharacter
public boolean hasSpaceAfterTrimCharacter()Determines whether a whitespace was found after the character used to trim the string.- Returns:
trueif there was a whitespace after the trim character;falseotherwise
-
hasSpecification
public boolean hasSpecification()Determines whether the way the trim is trimmed was parsed.- Returns:
trueif the query contained the way the trim needs to be trimmed;falseotherwise
-
hasTrimCharacter
public boolean hasTrimCharacter()Determines whether the character used to trim the string was specified.- Returns:
trueif the character used for trimming was specified;falseotherwise
-
parseEncapsulatedExpression
protected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant) Description copied from class:AbstractEncapsulatedExpressionParses the encapsulated expression by starting at the current position, which is part of the givenWordParser.- Overrides:
parseEncapsulatedExpressionin classAbstractSingleEncapsulatedExpression- Parameters:
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 queries
-
toParsedTextEncapsulatedExpression
Description copied from class:AbstractEncapsulatedExpressionGenerates a string representation of the encapsulatedExpression.- Overrides:
toParsedTextEncapsulatedExpressionin classAbstractSingleEncapsulatedExpression- Parameters:
writer- The buffer used to append the encapsulatedExpression'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
-