Oracle Fusion Middleware Java API Reference for Oracle TopLink
11g Release 1 (11.1.1)

E28847-01


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

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

BNF: expression ::= TRIM([[trim_specification] [trim_character] FROM] string_primary)
BNF: trim_character ::= string_literal | input_parameter
Example: UPDATE Student st SET st.sname=TRIM(st.sname)
Since:
2.3
Version:
2.3
Author:
Pascal Filion

Nested Class Summary
static class TrimExpression.Specification
          The possible ways to trim the string.
 
Field Summary
private  boolean hasFrom
          Determines whether the identifier FROM was part of the query.
private  boolean hasSpaceAfterFrom
          Determines whether a space was parsed after the identifier FROM.
private  boolean hasSpaceAfterSpecification
          Determines whether a space was parsed after the trim specification.
private  boolean hasSpaceAfterTrimCharacter
          Determines whether a space was parsed after the trim character.
private  TrimExpression.Specification specification
          The specification specifies how to trim the string.
private  AbstractExpression trimCharacter
          The character used for trimming the string.
 
Fields inherited from class org.eclipse.persistence.jpa.internal.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.internal.jpql.parser.Expression
ABS, ALL, AND, ANY, AS, ASC, AVG, BETWEEN, BIT_LENGTH, BOTH, CASE, CHAR_LENGTH, CHARACTER_LENGTH, CLASS, COALESCE, CONCAT, COUNT, CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, DELETE, DELETE_FROM, DESC, DIFFERENT, DISTINCT, DIVISION, ELSE, EMPTY, END, ENTRY, EQUAL, ESCAPE, EXISTS, FALSE, FETCH, FROM, FUNC, GREATER_THAN, GREATER_THAN_OR_EQUAL, GROUP_BY, HAVING, IN, INDEX, INNER, INNER_JOIN, INNER_JOIN_FETCH, 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_EXISTS, NOT_IN, NOT_LIKE, NOT_MEMBER, NOT_MEMBER_OF, NULL, NULLIF, OBJECT, OF, OR, ORDER_BY, OUTER, PLUS, POSITION, POSITIONAL_PARAMETER, QUOTE, SELECT, SET, SIZE, SOME, SQRT, SUBSTRING, SUM, THEN, TRAILING, TREAT, TRIM, TRUE, TYPE, 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.
(package private)  void addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
          Adds the StringExpressions representing the encapsulated Expression.
 java.lang.String encapsulatedExpressionBNF()
          Returns the BNF used to parse the encapsulated expression.
 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.
(package private)  void parseEncapsulatedExpression(WordParser wordParser, boolean tolerant)
          Parses the encapsulated expression by starting at the current position, which is part of the given WordParser.
(package private)  java.lang.String parseIdentifier(WordParser wordParser)
          Parses the identifier of this expression.
private  TrimExpression.Specification parseTrimSpecification(WordParser wordParser)
           
(package private)  void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer, boolean includeVirtual)
          Generates a string representation of the encapsulated Expression.
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractSingleEncapsulatedExpression
addChildrenTo, getExpression, hasExpression, setExpression
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractEncapsulatedExpression
addOrderedChildrenTo, areLogicalIdentifiersSupported, getIdentifier, hasLeftParenthesis, hasRightParenthesis, isParsingComplete, parse, toParsedText
 
Methods inherited from class org.eclipse.persistence.jpa.internal.jpql.parser.AbstractExpression
buildExpressionFromFallingBack, buildNullExpression, buildStringExpression, buildStringExpression, buildUnknownExpression, children, expressionFactory, expressionFactoryForIdentifier, findQueryBNF, getChildren, getJPAVersion, getParent, getRoot, getText, handleAggregate, identifierRole, identifiers, identifiers, identifierVersion, isAncestor, isIdentifier, isNull, isTolerant, isUnknown, isVirtual, orderedChildren, parse, parseSingleExpression, populatePosition, queryBNF, readdLeadingSpaces, 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
 

Field Detail

hasFrom

private boolean hasFrom
Determines whether the identifier FROM was part of the query.

hasSpaceAfterFrom

private boolean hasSpaceAfterFrom
Determines whether a space was parsed after the identifier FROM.

hasSpaceAfterSpecification

private boolean hasSpaceAfterSpecification
Determines whether a space was parsed after the trim specification.

hasSpaceAfterTrimCharacter

private boolean hasSpaceAfterTrimCharacter
Determines whether a space was parsed after the trim character.

specification

private TrimExpression.Specification specification
The specification specifies how to trim the string.

trimCharacter

private AbstractExpression trimCharacter
The character used for trimming the string.
Constructor Detail

TrimExpression

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 visitor 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() or Expression.getChildren() is called.

This does not traverse the Expression sub-hierarchy, use an 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

void addOrderedEncapsulatedExpressionTo(java.util.List<StringExpression> children)
Adds the StringExpressions 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

getQueryBNF

public JPQLQueryBNF getQueryBNF()
Returns the BNF of this Expression.
Specified by:
getQueryBNF in class AbstractExpression
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

void parseEncapsulatedExpression(WordParser wordParser,
                                 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
tolerant - Determines whether the parsing system should be tolerant, meaning if it should try to parse invalid or incomplete queries

parseIdentifier

java.lang.String parseIdentifier(WordParser wordParser)
Parses the identifier of this expression.
Specified by:
parseIdentifier in class AbstractEncapsulatedExpression
Returns:
The identifier for this expression

parseTrimSpecification

private TrimExpression.Specification parseTrimSpecification(WordParser wordParser)

toParsedTextEncapsulatedExpression

void toParsedTextEncapsulatedExpression(java.lang.StringBuilder writer,
                                        boolean includeVirtual)
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
includeVirtual - 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

Copyright © 1998, 2012, Oracle. All Rights Reserved.