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
public final class TrimExpression extends AbstractSingleEncapsulatedExpression
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 optionaltrim_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_parameter
JPA 2.1:
BNF:expression ::= TRIM([[trim_specification] [trim_character] FROM] string_expression)
BNF:trim_character ::= string_literal | input_parameter
Example:UPDATE Student st SET st.sname=TRIM(st.sname)
- Since:
- 2.3
- Version:
- 2.5
- Author:
- Pascal Filion
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
TrimExpression.Specification
The 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, UNDERSCORE
-
Fields 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 Constructor Description TrimExpression(AbstractExpression parent)
Creates a newTrimExpression
.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.void
acceptChildren(ExpressionVisitor visitor)
Visits the children of thisExpression
.String
getActualFromIdentifier()
Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.String
getActualSpecificationIdentifier()
Returns the actual specification identifier found in the string representation of the JPQL query, which has the actual case that was used.String
getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.JPQLQueryBNF
getQueryBNF()
Returns the BNF of thisExpression
.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.-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
findQueryBNF, getExpression, hasExpression, setExpression
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier
-
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
children, getGrammar, getIdentifierVersion, getLength, getOffset, getParent, getQueryBNF, getRoot, isAncestor, orderedChildren, populatePosition, toActualText, toParsedText, toString
-
-
-
-
Constructor Detail
-
TrimExpression
public TrimExpression(AbstractExpression parent)
Creates a newTrimExpression
.- Parameters:
parent
- The parent of this expression
-
-
Method Detail
-
accept
public void accept(ExpressionVisitor visitor)
Visits thisExpression
by the givenvisitor
.- Parameters:
visitor
- TheExpressionVisitor
to visit this object
-
acceptChildren
public void acceptChildren(ExpressionVisitor visitor)
Visits 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
Expression
sub-hierarchy, use a subclass ofAbstractTraverseChildrenVisitor
in order to traverse the entire sub-hierarchy.- Specified by:
acceptChildren
in interfaceExpression
- Overrides:
acceptChildren
in classAbstractSingleEncapsulatedExpression
- Parameters:
visitor
- Thevisitor
to visit the children of this object.
-
getEncapsulatedExpressionQueryBNFId
public String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFId
in classAbstractSingleEncapsulatedExpression
- Returns:
- The BNF used to parse the encapsulated expression
-
getActualFromIdentifier
public String 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
public String 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
public JPQLQueryBNF getQueryBNF()
Returns the BNF of thisExpression
.- Returns:
- The
JPQLQueryBNF
, which represents the grammar of thisExpression
-
getSpecification
public TrimExpression.Specification getSpecification()
Returns the specification which specifies how to trim the string.- Returns:
- One of the available choices for trimming the string
-
getTrimCharacter
public Expression 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()
Determines whether something was parsed after the left parenthesis.- Overrides:
hasEncapsulatedExpression
in classAbstractSingleEncapsulatedExpression
- Returns:
true
if something was parsed;false
otherwise
-
hasFrom
public boolean hasFrom()
Determines whether the identifier FROM was part of the query.- Returns:
true
if the identifier FROM was parsed;false
otherwise
-
hasSpaceAfterFrom
public boolean hasSpaceAfterFrom()
Determines whether a whitespace was found after FROM.- Returns:
true
if there was a whitespace after FROM;false
otherwise
-
hasSpaceAfterSpecification
public boolean hasSpaceAfterSpecification()
Determines whether a whitespace was found after the way the string is trimmed.- Returns:
true
if there was a whitespace after the trim specification;false
otherwise
-
hasSpaceAfterTrimCharacter
public boolean hasSpaceAfterTrimCharacter()
Determines whether a whitespace was found after the character used to trim the string.- Returns:
true
if there was a whitespace after the trim character;false
otherwise
-
hasSpecification
public boolean hasSpecification()
Determines whether the way the trim is trimmed was parsed.- Returns:
true
if the query contained the way the trim needs to be trimmed;false
otherwise
-
hasTrimCharacter
public boolean hasTrimCharacter()
Determines whether the character used to trim the string was specified.- Returns:
true
if the character used for trimming was specified;false
otherwise
-
-