package com.google.sitebricks.binding; import com.google.common.collect.MapMaker; import com.google.inject.servlet.SessionScoped; import net.jcip.annotations.ThreadSafe; import java.io.Serializable; import java.util.concurrent.ConcurrentMap; /** * Used to store binding (or forwarding) information between successive requests. * * @author Dhanji R. Prasanna (dhanji@gmail.com) */ @ThreadSafe @SessionScoped public class HttpSessionFlashCache implements FlashCache, Serializable { private final ConcurrentMap<String, Object> cache = new MapMaker().makeMap(); @SuppressWarnings("unchecked") public <T> T get(String key) { return (T) cache.get(key); } @SuppressWarnings("unchecked") public <T> T remove(String key) { return (T) cache.remove(key); } public <T> void put(String key, T t) { cache.put(key, t); } }