class GenericReactiveCacheSupportCrudService<E, K> implements EnableCacheReactiveCrudService<E, K> {

    @Autowired
    private ReactiveRepository<E, K> repository;

    @Override
    public ReactiveRepository<E, K> getRepository() {
        return repository;
    }

    @Autowired(required = false)
    private ReactiveCacheManager cacheManager;

    protected ReactiveCache<E> cache;

    @Override
    public ReactiveCache<E> getCache() {<FILL_FUNCTION_BODY>}

    public String getCacheName() {
        return this.getClass().getSimpleName();
    }


    public Flux<E> getCacheAll() {
        return getCache().getFlux(ALL_DATA_KEY, () -> EnableCacheReactiveCrudService.super.createQuery().fetch());
    }
}

        if (cache != null) {
            return cache;
        }
        if (cacheManager == null) {
            return cache = UnSupportedReactiveCache.getInstance();
        }

        return cache = cacheManager.getCache(getCacheName());
    
<no_super_class>