zoukankan      html  css  js  c++  java
  • A SimpleDataStore

    import java.util.HashMap;
    import java.util.Map;
    import java.util.concurrent.ConcurrentHashMap;
    import java.util.concurrent.ConcurrentMap;
    public interface DataStore {
    
        /**
         * return a snapshot value of componentName
         */
        Map<String,Object> get(String componentName);
    
        Object get(String componentName, String key);
    
        void put(String componentName, String key, Object value);
    
        void remove(String componentName, String key);
    
    }
    public class SimpleDataStore implements DataStore {
    
        // <组件类名或标识, <数据名, 数据值>>
        private ConcurrentMap<String, ConcurrentMap<String, Object>> data =
            new ConcurrentHashMap<String, ConcurrentMap<String,Object>>();
    
        public Map<String, Object> get(String componentName) {
            ConcurrentMap<String, Object> value = data.get(componentName);
            if(value == null) return new HashMap<String, Object>();
    
            return new HashMap<String, Object>(value);
        }
    
        public Object get(String componentName, String key) {
            if (!data.containsKey(componentName)) {
                return null;
            }
            return data.get(componentName).get(key);
        }
    
        public void put(String componentName, String key, Object value) {
            Map<String, Object> componentData = data.get(componentName);
            if(null == componentData) {
                data.putIfAbsent(componentName, new ConcurrentHashMap<String, Object>());
                componentData = data.get(componentName);
            }
            componentData.put(key, value);
        }
    
        public void remove(String componentName, String key) {
            if (!data.containsKey(componentName)) {
                return;
            }
            data.get(componentName).remove(key);
        }
    
    }
  • 相关阅读:
    hibernate经典配置与测试
    jquerry之隔行跳色
    Struts2之Ognl用法
    java模拟系统进程算法的小程序
    HDU 1506 Largest Rectangle in a Histogram【矩阵最大面积】
    POJ 3624 Charm Bracelet【01背包】
    HDU 1505 City Game【矩阵的最大面积】
    POJ 1837 Balance【DP】
    HDU 1059 Dividing【多重背包】
    POJ 2063 Investment【完全背包】
  • 原文地址:https://www.cnblogs.com/frankyou/p/9566748.html
Copyright © 2011-2022 走看看