@Override
      public CacheRuntimeException createCancellationException(final long timeLimitMillis,
          final ExecutionContext executionContext) {
        final String message = String.format(
            "Query execution canceled after exceeding max execution time %sms.",
            timeLimitMillis);
        if (logger.isInfoEnabled()) {
          logger.info(String.format("%s %s", message, executionContext));
        }
        return new QueryExecutionTimeoutException(message);
      }
This enum (an abstract base class or ABC) and its enum constants (subclasses of the ABC)
play the role of "ConcreteState" classes in the GoF "State" pattern.

See {@link MemoryState} for details.
geode-core/src/main/java/org/apache/geode/cache/query/internal/QueryMonitor.java