Class LikeExpressionStateObject

  • All Implemented Interfaces:
    StateObject

    public class LikeExpressionStateObject
    extends AbstractStateObject
    The LIKE condition is used to specify a search for a pattern.

    The string_expression must have a string value. The pattern_value is a string literal or a string-valued input parameter in which an underscore (_) stands for any single character, a percent (%) character stands for any sequence of characters (including the empty sequence), and all other characters stand for themselves. The optional escape_character is a single-character string literal or a character-valued input parameter (i.e., char or Character) and is used to escape the special meaning of the underscore and percent characters in pattern_value.

    BNF: like_expression ::= string_expression [NOT] LIKE pattern_value [ESCAPE escape_character]

    Version:
    2.4
    See Also:
    LikeExpression
    Author:
    Pascal Filion
    Since:
    2.4
    • Field Detail

      • ESCAPE_CHARACTER_PROPERTY

        public static final java.lang.String ESCAPE_CHARACTER_PROPERTY
        Notifies the escape character property has changed.
        See Also:
        Constant Field Values
      • NOT_PROPERTY

        public static final java.lang.String NOT_PROPERTY
        Notifies the visibility of the NOT identifier has changed.
        See Also:
        Constant Field Values
      • PATTERN_VALUE_PROPERTY

        public static final java.lang.String PATTERN_VALUE_PROPERTY
        Notifies the pattern value property has changed.
        See Also:
        Constant Field Values
      • STRING_STATE_OBJECT_PROPERTY

        public static final java.lang.String STRING_STATE_OBJECT_PROPERTY
        Notifies the string state object property has changed.
        See Also:
        Constant Field Values
    • Constructor Detail

      • LikeExpressionStateObject

        public LikeExpressionStateObject​(StateObject parent)
        Creates a new LikeExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • LikeExpressionStateObject

        public LikeExpressionStateObject​(StateObject parent,
                                         StateObject stringStateObject)
        Creates a new LikeExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stringStateObject - The StateObject representing the string expression
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • LikeExpressionStateObject

        public LikeExpressionStateObject​(StateObject parent,
                                         StateObject stringStateObject,
                                         boolean not,
                                         StateObject patternValue,
                                         java.lang.String escapeCharacter)
        Creates a new LikeExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stringStateObject - The StateObject representing the string expression
        not - Determines whether the NOT identifier is part of the expression or not
        patternValue - A string literal or a string-valued input parameter in which an underscore (_) stands for any single character, a percent (%) character stands for any sequence of characters (including the empty sequence), and all other characters stand for themselves
        escapeCharacter - A single-character string literal or a character-valued input parameter (i.e., char or Character) and is used to escape the special meaning of the underscore and percent characters in pattern_value
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
      • LikeExpressionStateObject

        public LikeExpressionStateObject​(StateObject parent,
                                         StateObject stringStateObject,
                                         StateObject patternValue)
        Creates a new LikeExpressionStateObject.
        Parameters:
        parent - The parent of this state object, which cannot be null
        stringStateObject - The StateObject representing the string expression
        patternValue - a string literal or a string-valued input parameter in which an underscore (_) stands for any single character, a percent (%) character stands for any sequence of characters (including the empty sequence), and all other characters stand for themselves
        Throws:
        java.lang.NullPointerException - The given parent cannot be null
    • Method Detail

      • getEscapeCharacter

        public java.lang.String getEscapeCharacter()
      • getExpression

        public LikeExpression getExpression()
        Returns the actual parsed object if this StateObject representation of the JPQL query was created by parsing an existing JPQL query.
        Specified by:
        getExpression in interface StateObject
        Overrides:
        getExpression in class AbstractStateObject
        Returns:
        The parsed object when a JPQL query is parsed and converted into a StateObject or null when the JPQL query is manually created (i.e. not from a string)
      • getPatternValue

        public StateObject getPatternValue()
      • getStringStateObject

        public StateObject getStringStateObject()
      • hasEscapeCharacter

        public boolean hasEscapeCharacter()
      • hasNot

        public boolean hasNot()
        Determines whether the NOT identifier is used or not.
        Returns:
        true if the NOT identifier is part of the expression; false otherwise
      • hasPatternValue

        public boolean hasPatternValue()
      • hasStringStateObject

        public boolean hasStringStateObject()
      • removeNot

        public void removeNot()
        Makes sure the NOT identifier is not specified.
      • setEscapeCharacter

        public void setEscapeCharacter​(java.lang.String escapeCharacter)
      • setExpression

        public void setExpression​(LikeExpression expression)
        Keeps a reference of the parsed object object, which should only be done when this object is instantiated during the conversion of a parsed JPQL query into StateObjects.
        Parameters:
        expression - The parsed object representing a LIKE expression
      • setNot

        public void setNot​(boolean not)
        Sets whether the NOT identifier should be part of the expression or not.
        Parameters:
        not - true if the NOT identifier should be part of the expression; false otherwise
      • setPatternValue

        public void setPatternValue​(StateObject patternValue)
      • setStringStateObject

        public void setStringStateObject​(StateObject stringStateObject)
      • toggleNot

        public void toggleNot()
        Changes the visibility state of the NOT identifier.
      • toTextInternal

        protected void toTextInternal​(java.lang.Appendable writer)
                               throws java.io.IOException
        Prints out a string representation of this StateObject, which should not be used to define a true string representation of a JPQL query but should be used for debugging purposes.
        Specified by:
        toTextInternal in class AbstractStateObject
        Parameters:
        writer - The writer used to print out the string representation
        Throws:
        java.io.IOException - This should never happens, it is only required because Appendable is used instead of any concrete class