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()));
        }
    }
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 ) { 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 { 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 ( ) ) ) ; } }
Save a value to the cache.<p>

@param key the key under which the value is saved
@param theCacheEntry the entry to cache