docs: public void applyChanges() {
          final boolean isStatisticsEnabled = cacheRecordStore.cacheConfig.isStatisticsEnabled();
          final CacheStatisticsImpl statistics = cacheRecordStore.statistics;
  
          switch (state) {
              case ACCESS:
                  cacheRecordStore.accessRecord(keyData, record, expiryPolicy, now);
                  break;
              case CREATE:
                  if (isStatisticsEnabled) {
                      statistics.increaseCachePuts(1);
                      statistics.addGetTimeNanos(System.nanoTime() - start);
                  }
                  boolean saved =
                          cacheRecordStore.createRecordWithExpiry(keyData, value, expiryPolicy,
                                  now, false, completionId) != null;
                  onCreate(keyData, value, expiryPolicy, now, false, completionId, saved);
                  break;
              case LOAD:
                  saved = cacheRecordStore.createRecordWithExpiry(keyData, valueLoaded, expiryPolicy,
                          now, true, completionId) != null;
                  onLoad(keyData, valueLoaded, expiryPolicy, now, true, completionId, saved);
                  break;
              case UPDATE:
                  saved = cacheRecordStore.updateRecordWithExpiry(keyData, value, record,
                          expiryPolicy, now, false, completionId);
                  onUpdate(keyData, value, record, expiryPolicy, now, false, completionId, saved);
                  if (isStatisticsEnabled) {
                      statistics.increaseCachePuts(1);
                      statistics.addGetTimeNanos(System.nanoTime() - start);
                  }
                  break;
              case REMOVE:
                  boolean removed = cacheRecordStore.remove(keyData, null, null, completionId);
                  onRemove(keyData, null, completionId, removed);
                  break;
              case NONE:
                  cacheRecordStore.publishEvent(
                          CacheEventContextUtil.createCacheCompleteEvent(
                                  cacheRecordStore.toEventData(keyData),
                                  completionId));
                  break;
              default:
                  break;
          }
      }