docs: boolean put(CmsFlexCacheKey key, CmsFlexCacheEntry entry, String variation, CmsFlexRequestKey requestKey) {
  
          if (!isEnabled()) {
              return false;
          }
          if (LOG.isDebugEnabled()) {
              LOG.debug(Messages.get().getBundle().key(Messages.LOG_FLEXCACHE_ADD_ENTRY_1, key.getResource()));
          }
          if (variation != null) {
              // This is a cachable result
              key.setVariation(variation);
              if (LOG.isDebugEnabled()) {
                  LOG.debug(
                      Messages.get().getBundle().key(
                          Messages.LOG_FLEXCACHE_ADD_ENTRY_WITH_VARIATION_2,
                          key.getResource(),
                          key.getVariation()));
              }
              put(key, entry);
              if (m_bucketConfiguration != null) {
                  try {
                      List<String> paths = key.getPathsForBuckets(requestKey);
                      if (paths.size() > 0) {
                          BucketSet buckets = m_bucketConfiguration.getBucketSet(paths);
                          entry.setBucketSet(buckets);
                      } else {
                          entry.setBucketSet(null); // bucket set of null means entries will be deleted for every publish job
                      }
                  } catch (Exception e) {
                      LOG.error(e.getLocalizedMessage(), e);
                  }
              }
              // Note that duplicates are NOT checked, it it assumed that this is done beforehand,
              // while checking if the entry is already in the cache or not.
              return true;
          } else {
              // Result is not cachable
              if (LOG.isDebugEnabled()) {
                  LOG.debug(Messages.get().getBundle().key(Messages.LOG_FLEXCACHE_RESOURCE_NOT_CACHEABLE_0));
              }
              return false;
          }
      }