设置文件缓存

package com.beagledata.gaea.workbench.rule.util;

import com.beagledata.commons.SpringBeanHolder;
import com.beagledata.gaea.workbench.common.AssetsType;
import com.beagledata.gaea.workbench.entity.Assets;
import com.beagledata.gaea.workbench.mapper.AssetsMapper;
import com.beagledata.gaea.workbench.rule.define.Constant;
import com.beagledata.gaea.workbench.rule.define.Fact;
import org.apache.commons.lang.StringUtils;

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

public class BomUtils {
private static AssetsMapper assetsMapper = SpringBeanHolder.getBean(AssetsMapper.class);
private static Map<String, Fact> factCache = new HashMap<>();
private static Map<Integer, Fact> factIdCache = new HashMap<>();
private static Map<String, Constant> constantCache = new HashMap<>();

public static Fact getFactByUuid(String uuid) {
    if (StringUtils.isBlank(uuid))
        return null;
    Fact fact = factCache.get(uuid);
    if (fact == null) {
        Assets assets = assetsMapper.selectByUuid(uuid);
        if (assets != null && AssetsType.FACT.equals(assets.getType())) {
            fact = Fact.fromAssets(assets);
            factCache.put(uuid, fact);
        }
    }
    return fact;
}

public static Constant getConstantByUuid(String uuid) {
    if (StringUtils.isBlank(uuid))
        return null;
    Constant constant = constantCache.get(uuid);
    if (constant == null) {
        Assets assets = assetsMapper.selectByUuid(uuid);
        if (assets != null && AssetsType.CONSTANT.equals(assets.getType())) {
            constant = Constant.fromAssets(assets);
            constantCache.put(uuid, constant);
        }
    }
    return constant;
}

public static Fact getFactById(int id) {
    if (id <= 0)
        return null;
    Fact fact  = factIdCache.get(id);
    if (fact == null) {
        Assets assets = assetsMapper.selectById(id);
        if (assets != null && AssetsType.FACT.equals(assets.getType())) {
            fact = Fact.fromAssets(assets);
            factIdCache.put(id, fact);
        }
    }
    return fact;
}

public static void removeFact(String uuid) {
    factCache.put(uuid, null);
}

public static void removeConstant(String uuid) {
    constantCache.put(uuid, null);
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值