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)- Version:
- 2.5
- Author:
- Pascal Filion
- Since:
- 2.3
 
- 
- 
Nested Class SummaryNested 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.AbstractExpressionCOMMA, 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.ExpressionABS, 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 SummaryConstructors Constructor Description TrimExpression(AbstractExpression parent)Creates a newTrimExpression.
 - 
Method SummaryAll 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.protected voidaddOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)Adds theExpressionsrepresenting the encapsulatedExpression.java.lang.StringgetActualFromIdentifier()Returns the actual FROM identifier found in the string representation of the JPQL query, which has the actual case that was used.java.lang.StringgetActualSpecificationIdentifier()Returns the actual specification identifier found in the string representation of the JPQL query, which has the actual case that was used.java.lang.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.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(java.lang.StringBuilder writer, boolean actual)Generates a string representation of the encapsulatedExpression.- 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpressionaddChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpression
 - 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpressionaddOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
 - 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractExpressionacceptUnknownVisitor, 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 Detail- 
TrimExpressionpublic TrimExpression(AbstractExpression parent) Creates a newTrimExpression.- Parameters:
- parent- The parent of this expression
 
 
- 
 - 
Method Detail- 
acceptpublic void accept(ExpressionVisitor visitor) Visits thisExpressionby the givenvisitor.- Parameters:
- visitor- The- ExpressionVisitorto visit this object
 
 - 
acceptChildrenpublic 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 interface- Expression
- Overrides:
- acceptChildrenin class- AbstractSingleEncapsulatedExpression
- Parameters:
- visitor- The- visitorto visit the children of this object.
 
 - 
addOrderedEncapsulatedExpressionToprotected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children) Adds theExpressionsrepresenting the encapsulatedExpression.- Overrides:
- addOrderedEncapsulatedExpressionToin class- AbstractSingleEncapsulatedExpression
- Parameters:
- children- The list used to store the string representation of the encapsulated- Expression
 
 - 
getEncapsulatedExpressionQueryBNFIdpublic java.lang.String getEncapsulatedExpressionQueryBNFId() Returns the BNF used to parse the encapsulated expression.- Specified by:
- getEncapsulatedExpressionQueryBNFIdin class- AbstractSingleEncapsulatedExpression
- Returns:
- The BNF used to parse the encapsulated expression
 
 - 
getActualFromIdentifierpublic 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.- Returns:
- The FROM identifier that was actually parsed, or an empty string if it was not parsed
 
 - 
getActualSpecificationIdentifierpublic 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.- Returns:
- The specification identifier that was actually parsed, or an empty string if it was not parsed
 
 - 
getQueryBNFpublic JPQLQueryBNF getQueryBNF() Returns the BNF of thisExpression.- Returns:
- The JPQLQueryBNF, which represents the grammar of thisExpression
 
 - 
getSpecificationpublic TrimExpression.Specification getSpecification() Returns the specification which specifies how to trim the string.- Returns:
- One of the available choices for trimming the string
 
 - 
getTrimCharacterpublic 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
 
 - 
hasEncapsulatedExpressionpublic boolean hasEncapsulatedExpression() Determines whether something was parsed after the left parenthesis.- Overrides:
- hasEncapsulatedExpressionin class- AbstractSingleEncapsulatedExpression
- Returns:
- trueif something was parsed;- falseotherwise
 
 - 
hasFrompublic boolean hasFrom() Determines whether the identifier FROM was part of the query.- Returns:
- trueif the identifier FROM was parsed;- falseotherwise
 
 - 
hasSpaceAfterFrompublic boolean hasSpaceAfterFrom() Determines whether a whitespace was found after FROM.- Returns:
- trueif there was a whitespace after FROM;- falseotherwise
 
 - 
hasSpaceAfterSpecificationpublic 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
 
 - 
hasSpaceAfterTrimCharacterpublic 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
 
 - 
hasSpecificationpublic 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
 
 - 
hasTrimCharacterpublic boolean hasTrimCharacter() Determines whether the character used to trim the string was specified.- Returns:
- trueif the character used for trimming was specified;- falseotherwise
 
 - 
parseEncapsulatedExpressionprotected void parseEncapsulatedExpression(WordParser wordParser, int whitespaceCount, boolean tolerant) Parses the encapsulated expression by starting at the current position, which is part of the givenWordParser.- Overrides:
- parseEncapsulatedExpressionin class- AbstractSingleEncapsulatedExpression
- Parameters:
- wordParser- The text to parse based on the current position of the cursor
- whitespaceCount- 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
 
 - 
toParsedTextEncapsulatedExpressionprotected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean actual)Generates a string representation of the encapsulatedExpression.- Overrides:
- toParsedTextEncapsulatedExpressionin class- AbstractSingleEncapsulatedExpression
- Parameters:
- writer- The buffer used to append the encapsulated- Expression's string representation
- actual- 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
 
 
- 
 
-