All Implemented Interfaces:
StateObject

public class StringLiteralStateObject extends SimpleStateObject
A string literal is enclosed in single quotes. For example: 'literal'. A string literal that includes a single quote is represented by two single quotes. For example: 'literal''s'. String literals in queries, like Java String literals, use unicode character encoding. Approximate literals support the use Java floating point literal syntax as well as SQL approximate numeric literal syntax. Enum literals support the use of Java enum literal syntax. The enum class name must be specified. Appropriate suffixes may be used to indicate the specific type of a numeric literal in accordance with the Java Language Specification. The boolean literals are TRUE and FALSE. Although predefined reserved literals appear in upper case, they are case insensitive.
Since:
2.4
Version:
2.4
See Also:
  • Constructor Details

    • StringLiteralStateObject

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

      public StringLiteralStateObject(StateObject parent, String literal)
      Creates a new StringLiteralStateObject.
      Parameters:
      parent - The parent of this state object, which cannot be null
      literal - The string literal
      Throws:
      NullPointerException - The given parent cannot be null
  • Method Details

    • accept

      public void accept(StateObjectVisitor visitor)
      Description copied from interface: StateObject
      Visits this StateObject by the given visitor.
      Parameters:
      visitor - The visitor to visit this object
    • getExpression

      public StringLiteral getExpression()
      Description copied from interface: StateObject
      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)
    • getUnquotedText

      public String getUnquotedText()
      Returns the string literal without the single quotes.
      Returns:
      The unquoted text
    • hasCloseQuote

      public boolean hasCloseQuote()
      Determines whether the closing quote was present or not.
      Returns:
      true if the literal is ended by a single quote; false otherwise
    • setExpression

      public void setExpression(StringLiteral 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 string literal