package ch.dueni.prefs.servlet; import java.util.AbstractMap; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpSession; public class SessionMap extends AbstractMap<String, Object> { private HttpSession session; public SessionMap(HttpSession httpSession) { session = httpSession; } @Override public Set<Entry<String, Object>> entrySet() { Enumeration<?> names = session.getAttributeNames(); Map<String, Object> entries = new HashMap<String, Object>(); while (names.hasMoreElements()) { String name = (String)names.nextElement(); entries.put(name, session.getAttribute(name)); } return entries.entrySet(); } @Override public Object put(String key, Object value) { Object oldValue = session.getAttribute(key); session.setAttribute(key, value); return oldValue; } @Override public Object get(Object key) { return session.getAttribute((String)key); } @Override public Object remove(Object key) { String name = (String)key; Object oldValue = session.getAttribute(name); session.removeAttribute(name); return oldValue; } @Override public void clear() { throw new UnsupportedOperationException(); } @Override public boolean containsKey(Object key) { throw new UnsupportedOperationException(); } @Override public boolean containsValue(Object value) { throw new UnsupportedOperationException(); } }