Interface Configuration<K,V>

Type Parameters:
K - the type of keys maintained the cache
V - the type of cached values
All Superinterfaces:
Serializable
All Known Subinterfaces:
CompleteConfiguration<K,V>
All Known Implementing Classes:
MutableConfiguration

public interface Configuration<K,V> extends Serializable
A basic read-only representation of a Cache configuration.

The properties provided by instances of this interface are used by CacheManagers to configure Caches.

Implementations of this interface must override Object.hashCode() and Object.equals(Object) as Configurations are often compared at runtime.

Since:
1.0
  • Method Details

    • getKeyType

      Class<K> getKeyType()
      Determines the required type of keys for Caches configured with this Configuration.
      Returns:
      the key type or Object.class if the type is undefined
    • getValueType

      Class<V> getValueType()
      Determines the required type of values for Caches configured with this Configuration.
      Returns:
      the value type or Object.class if the type is undefined
    • isStoreByValue

      boolean isStoreByValue()
      Whether storeByValue (true) or storeByReference (false). When true, both keys and values are stored by value.

      When false, both keys and values are stored by reference. Caches stored by reference are capable of mutation by any threads holding the reference. The effects are:

      • if the key is mutated, then the key may not be retrievable or removable
      • if the value is mutated, then all threads in the JVM can potentially observe those mutations, subject to the normal Java Memory Model rules.
      Storage by reference only applies to the local heap. If an entry is moved off heap it will need to be transformed into a representation. Any mutations that occur after transformation may not be reflected in the cache.

      When a cache is storeByValue, any mutation to the key or value does not affect the key of value stored in the cache.

      The default value is true.

      Returns:
      true if the cache is store by value