001    package railo.runtime.op;
002    
003    import java.util.HashMap;
004    import java.util.Map;
005    
006    
007    public class ThreadLocalDuplication {
008    
009            private static ThreadLocal<Map<Object,Object>> local=new ThreadLocal<Map<Object,Object>>();
010    
011            public static void set(Object o, Object c) {
012                    
013                    touch().put(o,c);
014            }
015    
016            public static Map<Object, Object> getMap() {
017                    return touch();
018            }
019            
020            public static void remove(Object o) {
021                    touch().remove(o);
022            }
023            
024            public static Object get(Object obj) {
025                    Map<Object,Object> list = touch();
026                    return list.get(obj);
027            }
028    
029            private static Map<Object,Object> touch() {
030                    Map<Object,Object> set = local.get();
031                    if(set==null) {
032                            set = new HashMap<Object,Object>();
033                            local.set(set);
034                    }
035                    return set;
036            }
037    
038    }
039    
040