public void put(Cache cache, Object key, Object value) { log.tracev("Adding cache operation: {0} on {1}", CacheOperation.ADD, key); Object taskKey = getTaskKey(cache, key); if (tasks.containsKey(taskKey)) { throw new IllegalStateException("Can't add session: task in progress for session"); } else { tasks.put(taskKey, new CacheTask(cache, CacheOperation.ADD, key, value)); } }
public Object get(Cache cache, Object key) { Object taskKey = getTaskKey(cache, key); CacheTask current = tasks.get(taskKey); if (current != null) { switch (current.operation) { case ADD: case REPLACE: return current.value; } } return null; }
public void replace(Cache cache, Object key, Object value) { log.tracev("Adding cache operation: {0} on {1}", CacheOperation.REPLACE, key); Object taskKey = getTaskKey(cache, key); CacheTask current = tasks.get(taskKey); if (current != null) { switch (current.operation) { case ADD: case REPLACE: current.value = value; return; case REMOVE: return; } } else { tasks.put(taskKey, new CacheTask(cache, CacheOperation.REPLACE, key, value)); } }
public void remove(Cache cache, Object key) { log.tracev("Adding cache operation: {0} on {1}", CacheOperation.REMOVE, key); Object taskKey = getTaskKey(cache, key); tasks.put(taskKey, new CacheTask(cache, CacheOperation.REMOVE, key, null)); }