docs: private void put(CmsFlexCacheKey key, CmsFlexCacheEntry theCacheEntry) {
  
          CmsFlexCacheVariation o = m_keyCache.get(key.getResource());
          if (key.getTimeout() > 0) {
              theCacheEntry.setDateExpiresToNextTimeout(key.getTimeout());
          }
          if (o != null) {
              // We already have a variation map for this resource
              Map<String, I_CmsLruCacheObject> m = o.m_map;
              boolean wasAdded = true;
              if (!m.containsKey(key.getVariation())) {
                  wasAdded = m_variationCache.add(theCacheEntry);
              } else {
                  wasAdded = m_variationCache.touch(theCacheEntry);
              }
  
              if (wasAdded) {
                  theCacheEntry.setVariationData(key.getVariation(), m);
                  m.put(key.getVariation(), theCacheEntry);
              }
          } else {
              // No variation map for this resource yet, so create one
              CmsFlexCacheVariation list = new CmsFlexCacheVariation(key);
  
              boolean wasAdded = m_variationCache.add(theCacheEntry);
  
              if (wasAdded) {
                  theCacheEntry.setVariationData(key.getVariation(), list.m_map);
                  list.m_map.put(key.getVariation(), theCacheEntry);
                  m_keyCache.put(key.getResource(), list);
              }
          }
  
          if (LOG.isDebugEnabled()) {
              LOG.debug(
                  Messages.get().getBundle().key(
                      Messages.LOG_FLEXCACHE_ADDED_ENTRY_FOR_RESOURCE_WITH_VARIATION_3,
                      new Integer(m_size),
                      key.getResource(),
                      key.getVariation()));
              LOG.debug(Messages.get().getBundle().key(Messages.LOG_FLEXCACHE_ADDED_ENTRY_1, theCacheEntry.toString()));
          }
      }