All Implemented Interfaces:
StateObject

public class DateTimeStateObject extends SimpleStateObject
This DateTimeStateObject represents a date or time. It supports the following identifiers:

CURRENT_DATE: This function returns the value of current date on the database server.

CURRENT_TIME: This function returns the value of current time on the database server.

CURRENT_TIMESTAMP: This function returns the value of current timestamp on the database server.

BNF: functions_returning_datetime ::= CURRENT_DATE | CURRENT_TIME | CURRENT_TIMESTAMP

The JDBC escape syntax may be used for the specification of date, time, and timestamp literals.

BNF: expression ::= {d 'yyyy-mm-dd'} | {t 'hh:mm:ss'} | {ts 'yyyy-mm-dd hh:mm:ss.f...'}

Since:
2.4
Version:
2.4
See Also:
  • Constructor Details

    • DateTimeStateObject

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

      public DateTimeStateObject(StateObject parent, String date)
      Creates a new DateTimeStateObject.
      Parameters:
      parent - The parent of this state object, which cannot be null
      date - Either DATE, TIME, TIMESTAMP or a JDBC date
      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 DateTime 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)
    • isCurrentDate

      public boolean isCurrentDate()
      Determines whether this DateTime represents the JPQL identifier CURRENT_DATE.
      Returns:
      true if this Expression represents CURRENT_DATE; false otherwise
    • isCurrentTime

      public boolean isCurrentTime()
      Determines whether this DateTime represents the JPQL identifier CURRENT_TIME.
      Returns:
      true if this Expression represents CURRENT_TIME; false otherwise
    • isCurrentTimestamp

      public boolean isCurrentTimestamp()
      Determines whether this DateTime represents the JPQL identifier CURRENT_TIMESTAMP.
      Returns:
      true if this Expression represents CURRENT_TIMESTAMP; false otherwise
    • isJDBCDate

      public boolean isJDBCDate()
      Determines whether this DateTime represents the JDBC escape syntax for date, time, timestamp formats.
      Returns:
      true if this Expression represents a JDBC escape syntax; false otherwise
    • setExpression

      public void setExpression(DateTime 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 date literal