EclipseLink 2.4.2, build 'v20130514-5956486' API Reference

org.eclipse.persistence.jpa.jpql.parser
Class TrimExpression

java.lang.Object
  extended by org.eclipse.persistence.jpa.jpql.parser.AbstractExpression
      extended by org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
          extended by org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
              extended by 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 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_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)

Version:
2.4
Author:
Pascal Filion
Since:
2.3

Nested Class Summary
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, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CAST, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, COLUMN, CONCAT, 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, 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, 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_FIRST, NULLS_LAST, OBJECT, OF, ON, OPERATOR, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, REGEXP, SELECT, SET, SIZE, SOME, SQL, SQRT, SUBSTRING, SUM, TABLE, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, UNION, UNKNOWN, UPDATE, UPPER, VALUE, WHEN, WHERE
 
Constructor Summary
TrimExpression(AbstractExpression parent)
          Creates a new TrimExpression.
 
Method Summary
 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 encapsulatedExpressionBNF()
          Returns the BNF used to parse 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.
 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  java.lang.String parseIdentifier(WordParser wordParser)
          Parses the identifier of this expression.
protected  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean actual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractSingleEncapsulatedExpression
addChildrenTo, findQueryBNF, getExpression, hasExpression, removeEncapsulatedExpression, setExpression
 
Methods inherited from class org.eclipse.persistence.jpa.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getActualIdentifier, getIdentifier, hasLeftParenthesis, hasRightParenthesis, hasSpaceAfterIdentifier, isParsingComplete, parse, shouldParseRightParenthesis, toParsedText
 
Methods 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

TrimExpression

public TrimExpression(AbstractExpression parent)
Creates a new TrimExpression.

Parameters:
parent - The parent of this expression
Method Detail

accept

public void accept(ExpressionVisitor visitor)
Visits this Expression by the given visitor.

Parameters:
visitor - The ExpressionVisitor to visit this object

acceptChildren

public void acceptChildren(ExpressionVisitor visitor)
Visits the children of this 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.

Specified by:
acceptChildren in interface Expression
Overrides:
acceptChildren in class AbstractSingleEncapsulatedExpression
Parameters:
visitor - The visitor to visit the children of this object.

addOrderedEncapsulatedExpressionTo

protected void addOrderedEncapsulatedExpressionTo(java.util.List<Expression> children)
Adds the Expressions representing the encapsulated Expression.

Overrides:
addOrderedEncapsulatedExpressionTo in class AbstractSingleEncapsulatedExpression
Parameters:
children - The list used to store the string representation of the encapsulated Expression

encapsulatedExpressionBNF

public java.lang.String encapsulatedExpressionBNF()
Returns the BNF used to parse the encapsulated expression.

Specified by:
encapsulatedExpressionBNF in class AbstractSingleEncapsulatedExpression
Returns:
The BNF used to parse the encapsulated expression

getActualFromIdentifier

public 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

getActualSpecificationIdentifier

public 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

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.

Returns:
The JPQLQueryBNF, which represents the grammar of this Expression

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 class AbstractSingleEncapsulatedExpression
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

parseEncapsulatedExpression

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.

Overrides:
parseEncapsulatedExpression in 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

parseIdentifier

protected java.lang.String parseIdentifier(WordParser wordParser)
Parses the identifier of this expression.

Specified by:
parseIdentifier in class AbstractEncapsulatedExpression
Returns:
The identifier for this expression

toParsedTextEncapsulatedExpression

protected void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
                                                  boolean actual)
Generates a string representation of the encapsulated Expression.

Overrides:
toParsedTextEncapsulatedExpression in 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

EclipseLink 2.4.2, build 'v20130514-5956486' API Reference