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

com.alicp.jetcache.external.ExternalCacheBuilder Maven / Gradle / Ivy

The newest version!
package com.alicp.jetcache.external;

import com.alicp.jetcache.AbstractCacheBuilder;
import com.alicp.jetcache.CacheManager;
import com.alicp.jetcache.support.BroadcastManager;

import java.util.function.Function;
import java.util.function.Supplier;

/**
 * Created on 16/9/9.
 *
 * @author huangli
 */
public abstract class ExternalCacheBuilder> extends AbstractCacheBuilder {

    @Override
    public ExternalCacheConfig getConfig() {
        if (config == null) {
            config = new ExternalCacheConfig();
        }
        return (ExternalCacheConfig) config;
    }

    public boolean supportBroadcast() {
        return false;
    }

    public BroadcastManager createBroadcastManager(CacheManager cacheManager) {
        return null;
    }

    public T broadcastChannel(String broadcastChannel) {
        getConfig().setBroadcastChannel(broadcastChannel);
        return self();
    }

    public void setBroadcastChannel(String broadcastChannel) {
        getConfig().setBroadcastChannel(broadcastChannel);
    }

    public T keyPrefix(String keyPrefix) {
        getConfig().setKeyPrefixSupplier(() -> keyPrefix);
        return self();
    }

    public T keyPrefixSupplier(Supplier keyPrefixSupplier) {
        getConfig().setKeyPrefixSupplier(keyPrefixSupplier);
        return self();
    }

    public T valueEncoder(Function valueEncoder){
        getConfig().setValueEncoder(valueEncoder);
        return self();
    }

    public T valueDecoder(Function valueDecoder){
        getConfig().setValueDecoder(valueDecoder);
        return self();
    }

    public void setKeyPrefix(String keyPrefix){
        if (keyPrefix != null) {
            getConfig().setKeyPrefixSupplier(() -> keyPrefix);
        } else {
            getConfig().setKeyPrefixSupplier(null);
        }
    }

    public void setKeyPrefixSupplier(Supplier keyPrefixSupplier){
        getConfig().setKeyPrefixSupplier(keyPrefixSupplier);
    }

    public void setValueEncoder(Function valueEncoder){
        getConfig().setValueEncoder(valueEncoder);
    }

    public void setValueDecoder(Function valueDecoder){
        getConfig().setValueDecoder(valueDecoder);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy