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_characteris 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)- Since:
- 2.3
- Version:
- 2.5
- Author:
- Pascal Filion
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classTrimExpression.SpecificationThe 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 voidaccept(ExpressionVisitor visitor)Visits thisExpressionby the givenvisitor.voidacceptChildren(ExpressionVisitor visitor)Visits the children of thisExpression.StringgetActualFromIdentifier()Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.StringgetActualSpecificationIdentifier()Returns the actual specification identifier found in the string representation of the JPQL query, which has the actual case that was used.StringgetEncapsulatedExpressionQueryBNFId()Returns the BNF used to parse the encapsulated expression.JPQLQueryBNFgetQueryBNF()Returns the BNF of thisExpression.TrimExpression.SpecificationgetSpecification()Returns the specification which specifies how to trim the string.ExpressiongetTrimCharacter()Returns the character used for trimming the string.booleanhasEncapsulatedExpression()Determines whether something was parsed after the left parenthesis.booleanhasFrom()Determines whether the identifier FROM was part of the query.booleanhasSpaceAfterFrom()Determines whether a whitespace was found after FROM.booleanhasSpaceAfterSpecification()Determines whether a whitespace was found after the way the string is trimmed.booleanhasSpaceAfterTrimCharacter()Determines whether a whitespace was found after the character used to trim the string.booleanhasSpecification()Determines whether the way the trim is trimmed was parsed.booleanhasTrimCharacter()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 thisExpressionby the givenvisitor.- Parameters:
visitor- TheExpressionVisitorto 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
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.
-
getEncapsulatedExpressionQueryBNFId
public String getEncapsulatedExpressionQueryBNFId()
Returns the BNF used to parse the encapsulated expression.- Specified by:
getEncapsulatedExpressionQueryBNFIdin 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:
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
-
-