Class 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.5
    Author:
    Pascal Filion
    Since:
    2.3
    • Constructor Detail

      • TrimExpression

        public TrimExpression​(AbstractExpression parent)
        Creates a new TrimExpression.
        Parameters:
        parent - The parent of this expression
    • Method Detail

      • 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
      • 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
      • 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
      • 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