All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.gitee.starblues.utils.GlobalRegistryInfo Maven / Gradle / Ivy

There is a newer version: 3.0.0
Show newest version
package com.gitee.starblues.utils;


import com.gitee.starblues.integration.IntegrationConfiguration;

import java.util.HashMap;
import java.util.Map;

/**
 * 全局注册信息
 *
 * @author starBlues
 * @version 2.2.0
 */
public final class GlobalRegistryInfo {

    private GlobalRegistryInfo(){}

    /**
     * 全局插件安装次数
     */
    private static Map operatorPluginInfos = new HashMap<>();

    /**
     * 全局扩展信息
     */
    private static Map extensionMap = new HashMap<>();


    /**
     * 添加操作插件信息
     * @param pluginId 插件id
     * @param operatorType 操作类型
     * @param isLock 是否加锁
     */
    public static synchronized void addOperatorPluginInfo(String pluginId,
                                                          PluginOperatorInfo.OperatorType operatorType,
                                                          boolean isLock){
        PluginOperatorInfo operatorPluginInfo = operatorPluginInfos.get(pluginId);
        if(operatorPluginInfo == null){
            operatorPluginInfo = new PluginOperatorInfo();
            operatorPluginInfos.put(pluginId, operatorPluginInfo);
        }
        operatorPluginInfo.setOperatorType(operatorType);
        operatorPluginInfo.setLock(isLock);
    }


    /**
     * 设置操作插件的信息
     * @param pluginId 插件id
     * @param isLock 是否加锁
     */
    public static synchronized void setOperatorPluginInfo(String pluginId, boolean isLock){
        PluginOperatorInfo operatorPluginInfo = operatorPluginInfos.get(pluginId);
        if(operatorPluginInfo != null){
            operatorPluginInfo.setLock(isLock);
        }
    }



    /**
     * 获取插件安装次数
     * @param pluginId 插件id
     * @return 操作插件类型
     */
    public static synchronized PluginOperatorInfo getPluginInstallNum(String pluginId){
        return operatorPluginInfos.get(pluginId);
    }


    /**
     * 添加全局扩展数据
     * @param key 扩展的key
     * @param value 扩展值
     */
    public static synchronized void addExtension(String key, Object value){
        extensionMap.put(key, value);
    }

    /**
     * 删除全局扩展数据
     * @param key 扩展的key
     */
    public static synchronized void removeExtension(String key){
        extensionMap.remove(key);
    }

    /**
     * 获取全局扩展值
     * @param key 全局扩展的key
     * @param  返回值泛型
     * @return 扩展值
     */
    public static synchronized  T getExtension(String key){
        Object o = extensionMap.get(key);
        if(o == null){
            return null;
        } else {
            return (T) o;
        }
    }




}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy