1 33 34 package com.icesoft.faces.context.effects; 35 36 import javax.faces.context.FacesContext; 37 import java.util.HashMap ; 38 import java.util.Map ; 39 import java.util.logging.Logger ; 40 import java.util.logging.Level ; 41 42 46 public class DragCache { 47 private static Logger log = Logger.getLogger(DragCache.class.getName()); 48 49 private static final String CACHE_CLEARED = 50 "ICESOFT_DRAG_CACHE_CLEARED_FLAG"; 51 private static final String CACHE_KEY = "ICESOFT_DRAG_CACHE_RGDM_FLAG"; 52 private static final String KEY_START = "ICEDRAGKEY["; 53 private static final String KEY_END = "]ICEDRAGKEY"; 54 55 56 62 public static String put(Object value, FacesContext context) { 63 Map sessionMap = context.getExternalContext().getSessionMap(); 64 if (sessionMap.get(CACHE_KEY) == null) { 66 sessionMap.put(CACHE_KEY, new HashMap ()); 67 } 68 Map cache = (Map ) sessionMap.get(CACHE_KEY); 69 String key = KEY_START + cache.size() + KEY_END; 70 cache.put(key, value); 71 72 return key; 73 } 74 75 76 77 83 public static Object get(String key, FacesContext context) { 84 if (key == null) { 85 throw new NullPointerException ("Key can't be null"); 86 } 87 key = key.trim(); 88 Map sessionMap = context.getExternalContext().getSessionMap(); 89 Map cache = (Map ) sessionMap.get(CACHE_KEY); 90 if (cache == null) { 91 throw new IllegalStateException ( 92 "No Drag component placed a value in the cache."); 93 } 94 Object o = cache.get(key); 95 if (o == null) { 96 log.log(Level.SEVERE, "DragCache: No value found for key [" + key + "]"); 97 } 98 return cache.get(key); 99 } 100 101 } 102 | Popular Tags |