PersistentCacheService.java

package sk.iway.iwcm.components.memory_cleanup.persistent_cache_objects;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.stereotype.Service;
import sk.iway.iwcm.Cache;
import sk.iway.iwcm.system.cache.PersistentCacheBean;
import sk.iway.iwcm.system.cache.PersistentCacheDB;

import java.util.Optional;

@Service
public class PersistentCacheService {

    private final PersistentCacheRepository persistentCacheRepository;

    @Autowired
    public PersistentCacheService(PersistentCacheRepository persistentCacheRepository) {
        this.persistentCacheRepository = persistentCacheRepository;
    }

    Page<PersistentCacheBean> getAllPersistentBeans(Pageable pageable) {
        return persistentCacheRepository.findAll(pageable);
    }

    boolean refreshPersistentCaches(PersistentCacheBean persistentCacheBeanTest) {
        PersistentCacheDB persistentCacheDB = new PersistentCacheDB();
        Optional<PersistentCacheBean> optionalPersistentCacheBeanTest = persistentCacheRepository.findById(persistentCacheBeanTest.getId());

        if (optionalPersistentCacheBeanTest.isPresent()) {
            persistentCacheDB.updateData(optionalPersistentCacheBeanTest.get());
            Cache cache = Cache.getInstance();
            cache.removeObject("PersistentCache." + optionalPersistentCacheBeanTest.get().getDataValue());
        }

        return true;
    }
}