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

com.github.anonymousmister.bootfastconfig.cache.caffeine.CaffeineCacheConfig Maven / Gradle / Ivy

package com.github.anonymousmister.bootfastconfig.cache.caffeine;

import com.github.anonymousmister.bootfastconfig.cache.properties.CaffeineBuilder;
import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;
import org.springframework.cache.caffeine.CaffeineCache;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

public class CaffeineCacheConfig {


    private final List caffeineCacheList;

    private CaffeineBuilder caffeineBuilder;


    public CaffeineCacheConfig() {
        this.caffeineCacheList = new ArrayList<>();
    }

    public void addCaffeineCache(CaffeineCache caffeineCache) {
        caffeineCacheList.add(caffeineCache);
    }

    public void addCaffeineCache(String cacheName, Cache cache) {
        caffeineCacheList.add(new CaffeineCache(cacheName, cache));
    }

    public void addCaffeineCache(String cacheName, CaffeineBuilder caffeineBuilder) {
        Caffeine builder = caffeineBuilder.Builder();

        caffeineCacheList.add(new CaffeineCache(cacheName, builder.build()));
    }

    public void addCaffeineCache(Map map) {
        if (map == null || map.isEmpty()) {
            return;
        }
        map.forEach((n, o) -> {
            addCaffeineCache(n, o);
        });
    }


    public void setDefaultCaffeineConfig(CaffeineBuilder caffeineBuilder) {
        if (this.caffeineBuilder == null) {
            this.caffeineBuilder = caffeineBuilder;
        }

    }

    public void getCaffeineCacheManager(MyCaffeineCacheManager caffeineCacheManager) {
        if (caffeineCacheManager == null) {
            return;
        }
        caffeineCacheManager.addCaches(caffeineCacheList);
    }

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy