Interface MetaParam<T>

  • Type Parameters:
    T - type of MetaParam instance, implementations should assign it to the implementation's type.
    All Known Subinterfaces:
    MetaParam.Writable<T>
    All Known Implementing Classes:
    MetaParam.MetaCreated, MetaParam.MetaEntryVersion, MetaParam.MetaLastUsed, MetaParam.MetaLifespan, MetaParam.MetaLoadedFromPersistence, MetaParam.MetaLong, MetaParam.MetaMaxIdle

    @Experimental
    public interface MetaParam<T>
    An easily extensible metadata parameter that's stored along with the value in the the functional map.

    Some metadata parameters can be provided by the user in which case they need to implement MetaParam.Writable. Examples of writable metadata parameters are version information, lifespan of the cached value...etc.

    Those metadata parameters not extending MetaParam.Writable are created by internal logic and hence can only be queried, for example: time when value was added into the functional map, or last time value was accessed or modified.

    What makes MetaParam different from Param is that MetaParam values are designed to be stored along with key/value pairs in the functional map, to provide extra information. On the other hand, Param instances merely act as ways to tweak how operations are executed, and their contents are never stored permanently.

    This interface replaces Infinispan's Metadata interface providing a more flexible way to add new metadata parameters to be stored with the cached entries.

    MetaParam design has been geared towards making a clear separation between the metadata that can be provided by the user on per-entry basis, e.g. lifespan, maxIdle, version...etc, as opposed to metadata that's produced by the internal logic that cannot be modified directly by the user, e.g. cache entry created time, last time cache entry was modified or accessed ...etc.

    Since:
    8.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Interface Description
      static interface  MetaParam.Lookup
      Provides metadata parameter lookup capabilities using Class as lookup key.
      static class  MetaParam.MetaCreated
      Read only metadata parameter representing a cached entry's created time in milliseconds.
      static class  MetaParam.MetaEntryVersion
      Writable metadata parameter representing a cached entry's generic version.
      static class  MetaParam.MetaLastUsed
      Read only metadata parameter representing a cached entry's last used time in milliseconds.
      static class  MetaParam.MetaLifespan
      Writable metadata parameter representing a cached entry's millisecond lifespan.
      static class  MetaParam.MetaLoadedFromPersistence
      Non-writable parameter telling if the entry was loaded from a persistence tier (CacheLoader) or not.
      static class  MetaParam.MetaLong
      Abstract class for numeric long-based metadata parameter instances.
      static class  MetaParam.MetaMaxIdle
      Writable metadata parameter representing a cached entry's millisecond max idle time.
      static interface  MetaParam.Writable<T>
      Writable MetaParam instances are those that the user can provide to be stored as part of the cache entry.
    • Method Detail

      • get

        T get()
        Returns the value of the meta parameter.