@Override
public <T> void storeInItemCache(String key, CacheElement<T> cacheElement, List<CacheDependency> dependencies) {
if (!isEnabled()) {
return;
}
if (!cacheExists()) {
LOG.error("Cache configuration is invalid! NOT Caching. Check EH Cache configuration.");
return;
}
if (!cacheElement.isNull() && cacheElement.getPayload() == null) {
Exception exToLogToHaveStacktraceWhoCausedIt = new Exception();
LOG.error("Detected undeclared null payload on element with key " + key + " at insert time!",
exToLogToHaveStacktraceWhoCausedIt);
cacheElement.setNull(true);
}
cacheElement.setExpired(false);
Element element = cache.get(key);
if (element == null) {
element = new Element(key, cacheElement);
}
cache.put(element);
element.setTimeToLive(cacheDependencyTTL);
for (CacheDependency dep : dependencies) {
String dependentKey = getKey(dep.getPublicationId(), dep.getItemId());
cacheElement.setDependentKey(dependentKey);
addDependency(key, dependentKey);
updateTTL(dependencyCache.get(dependentKey));
}
}