@Override
public <T> void storeInItemCache(final String key, final CacheElement<T> cacheElement, final
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(true);
}
cacheElement.setExpired(false);
if (cache.containsKey(key)) {
cache.replace(key, cacheElement);
} else {
cache.put(key, cacheElement);
}
for (CacheDependency dep : dependencies) {
String dependentKey = getKey(dep.getPublicationId(), dep.getItemId());
cacheElement.setDependentKey(dependentKey);
addDependency(key, dependentKey);
}
}