Class MappingStoreService

  • All Implemented Interfaces:
    StoreService

    public class MappingStoreService
    extends Object
    implements StoreService
    Allows you to delegate the store process to a different StoreService depending on the stored value class.

    Can acquire an instance through create() and configure it afterwards.

    Can be used like this to suppress storing certain entities:

         DiscordClient client = new DiscordClientBuilder(token)
                    .setStoreService(MappingStoreService.create()
                            .setMapping(new NoOpStoreService(), MessageBean.class)
                            .setFallback(new JdkStoreService()))
                    .build();
     
    • Method Detail

      • setMapping

        public MappingStoreService setMapping​(StoreService storeService,
                                              Class<?> valueClass)
        Set a new delegate StoreService for the given value class.
        Parameters:
        storeService - the service to use for the values
        valueClass - the value class to map to the given service
        Returns:
        a new MappingStoreService with updated properties
      • setMappings

        public MappingStoreService setMappings​(StoreService storeService,
                                               Class<?>... valueClasses)
        Set a new delegate StoreService for multiple given value classes.
        Parameters:
        storeService - the service to use for the values
        valueClasses - the list of value classes to map to the given service
        Returns:
        a new MappingStoreService with updated properties
      • hasGenericStores

        public boolean hasGenericStores()
        Description copied from interface: StoreService
        This is used to check if this service can provide generic stores.
        Specified by:
        hasGenericStores in interface StoreService
        Returns:
        True if possible, else false.
        See Also:
        Store
      • provideGenericStore

        public <K extends Comparable<K>,​V> Store<K,​V> provideGenericStore​(Class<K> keyClass,
                                                                                      Class<V> valueClass)
        Description copied from interface: StoreService
        This is called to provide a new store instance for the provided configuration.
        Specified by:
        provideGenericStore in interface StoreService
        Type Parameters:
        K - The key type which provides a 1:1 mapping to the value type. This type is also expected to be Comparable in order to allow for range operations.
        V - The value type, these follow JavaBean conventions.
        Parameters:
        keyClass - The class of the keys.
        valueClass - The class of the values.
        Returns:
        The instance of the store.
      • hasLongObjStores

        public boolean hasLongObjStores()
        Description copied from interface: StoreService
        This is used to check if this service can provide long-object stores.
        Specified by:
        hasLongObjStores in interface StoreService
        Returns:
        True if possible, else false.
        See Also:
        LongObjStore
      • provideLongObjStore

        public <V> LongObjStore<V> provideLongObjStore​(Class<V> valueClass)
        Description copied from interface: StoreService
        This is called to provide a new store instance with a long key and object values.
        Specified by:
        provideLongObjStore in interface StoreService
        Type Parameters:
        V - The value type, these follow JavaBean conventions.
        Parameters:
        valueClass - The class of the values.
        Returns:
        The instance of the store.
      • init

        public void init​(StoreContext context)
        Description copied from interface: StoreService
        This is a lifecycle method called to signal that a store should allocate any necessary resources.
        Specified by:
        init in interface StoreService
        Parameters:
        context - Some context about the environment which this service is being utilized in.
      • dispose

        public Mono<Void> dispose()
        Description copied from interface: StoreService
        This is a lifecycle method called to signal that a store should dispose of any resources due to an abrupt close (hard reconnect or disconnect).
        Specified by:
        dispose in interface StoreService
        Returns:
        A mono, whose completion signals that resources have been released successfully.