⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 entitiescachestorage.java

📁 羽量级数据持久层开发框架
💻 JAVA
字号:
package org.speedframework.cache;

//~--- non-JDK imports --------------------------------------------------------

import org.speedframework.utilities.PropertiesUtil;

//~--- JDK imports ------------------------------------------------------------

import java.util.LinkedHashMap;
import java.util.Map;

/**
 *  类描述信息,描述类的主要职责和用处。
 *
 *
 * @version    $LastChangedRevision: 1945 $, 2007.09.29 at 02:14:29 CST
 * @author     <a href="mailto:falcon8848@gmail.com">piginzoo </a>
 */
public class EntitiesCacheStorage
 {

    /**
     * 方法描述信息,
     * 描述方法是做什么的,
     * 如何调用,最好给出调用代码示例。
     *
     * @param region
     * @param key
     * @param source
     *
     * @return
     *
     * @throws Exception
     */
    public static Object save(String region, Object key, Object source) throws Exception {
        return saveOrUpdate(region, key, source);
    }

    /**
     * Get object from queue
     *
     * @param region
     * @param key
     *
     * @return
     * @throws Exception
     */
    public static synchronized Object get(String region, Object key) throws Exception {
        Map    queue = getQueueOfObject(region);
        Object reObj = null;

        if (queue.containsKey(key)) {
            reObj = queue.get(key);
        }

        return reObj;
    }

    /**
     * Delete object from queue
     *
     * @param region
     * @param key
     * @throws Exception
     */
    public static synchronized void remove(String region, Object key) throws Exception {
        Map queue = getQueueOfObject(region);

        if (queue.containsKey(key)) {
            queue.remove(key);
        }

        CacheStorage.put(region, queue);
    }

    /**
     * Update object in the queue
     *
     * @param region
     * @param key
     * @param source
     *
     * @return
     * @throws Exception
     */
    public static synchronized Object update(String region, Object key, Object source) throws Exception {
        return saveOrUpdate(region, key, source);
    }

    /**
     * Cache collection
     *
     * @param region
     * @return
     * @throws Exception
     */
    private static Map getQueueOfObject(String region) throws Exception {
        Map queue = (Map) CacheStorage.get(region);

        if (queue == null) {
            queue = new LinkedHashMap();
            CacheStorage.put(region, queue);
            getQueueOfObject(region);
        }

        return queue;
    }

    /**
     * Insert or update
     *
     * @param region
     * @param key
     * @param source
     * @return
     * @throws Exception
     */
    private static Object saveOrUpdate(String region, Object key, Object source) throws Exception {
        Map    queue = getQueueOfObject(region);
        Object old   = null;

        if (queue.containsKey(key)) {
            old = queue.get(key);
            PropertiesUtil.copyProperties(old, source);
        } else {
            queue.put(key, source);
        }

        CacheStorage.put(region, queue);

        return source;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -