Class BoundedLocalCache.BoundedPolicy.BoundedVarExpiration

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.util.OptionalLong getExpiresAfter​(K key, java.util.concurrent.TimeUnit unit)
      Returns the duration until the entry should be automatically removed.
      java.util.Map<K,​V> oldest​(int limit)
      Returns an unmodifiable snapshot Map view of the cache with ordered traversal.
      void put​(K key, V value, long duration, java.util.concurrent.TimeUnit unit)
      Associates the value with the key in this cache.
      (package private) @Nullable V put​(K key, V value, long duration, java.util.concurrent.TimeUnit unit, boolean onlyIfAbsent)  
      boolean putIfAbsent​(K key, V value, long duration, java.util.concurrent.TimeUnit unit)
      Associates the value with the key in this cache if the specified key is not already associated with a value.
      void setExpiresAfter​(K key, long duration, java.util.concurrent.TimeUnit unit)
      Specifies that the entry should be automatically removed from the cache once the duration has elapsed.
      java.util.Map<K,​V> youngest​(int limit)
      Returns an unmodifiable snapshot Map view of the cache with ordered traversal.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BoundedVarExpiration

        BoundedVarExpiration()
    • Method Detail

      • getExpiresAfter

        public java.util.OptionalLong getExpiresAfter​(K key,
                                                      java.util.concurrent.TimeUnit unit)
        Description copied from interface: Policy.VarExpiration
        Returns the duration until the entry should be automatically removed. The expiration policy determines when the entry's duration is reset.

        This method is scheduled for removal in version 3.0.0.

        Specified by:
        getExpiresAfter in interface Policy.VarExpiration<K,​V>
        Parameters:
        key - the key for the entry being queried
        unit - the unit that age is expressed in
        Returns:
        the duration if the entry is present in the cache
      • setExpiresAfter

        public void setExpiresAfter​(K key,
                                    long duration,
                                    java.util.concurrent.TimeUnit unit)
        Description copied from interface: Policy.VarExpiration
        Specifies that the entry should be automatically removed from the cache once the duration has elapsed. The expiration policy determines when the entry's age is reset.
        Specified by:
        setExpiresAfter in interface Policy.VarExpiration<K,​V>
        Parameters:
        key - the key for the entry being set
        duration - the length of time from now when the entry should be automatically removed
        unit - the unit that duration is expressed in
      • put

        public void put​(K key,
                        V value,
                        long duration,
                        java.util.concurrent.TimeUnit unit)
        Description copied from interface: Policy.VarExpiration
        Associates the value with the key in this cache. If the cache previously contained a value associated with the key, the old value is replaced by the new value. This method differs from Cache.put(K, V) by substituting the configured Expiry with the specified write duration.

        This method is scheduled for removal in version 3.0.0.

        Specified by:
        put in interface Policy.VarExpiration<K,​V>
        Parameters:
        key - the key with which the specified value is to be associated
        value - value to be associated with the specified key
        duration - the length of time from now when the entry should be automatically removed
        unit - the unit that duration is expressed in
      • putIfAbsent

        public boolean putIfAbsent​(K key,
                                   V value,
                                   long duration,
                                   java.util.concurrent.TimeUnit unit)
        Description copied from interface: Policy.VarExpiration
        Associates the value with the key in this cache if the specified key is not already associated with a value. This method differs from Map.putIfAbsent(K, V) by substituting the configured Expiry with the specified write duration, has no effect on the duration if the entry was present, and returns the success rather than a value.

        This method is scheduled for removal in version 3.0.0.

        Specified by:
        putIfAbsent in interface Policy.VarExpiration<K,​V>
        Parameters:
        key - the key with which the specified value is to be associated
        value - value to be associated with the specified key
        duration - the length of time from now when the entry should be automatically removed
        unit - the unit that duration is expressed in
        Returns:
        true if this cache did not already contain the specified entry
      • put

        @Nullable V put​(K key,
                        V value,
                        long duration,
                        java.util.concurrent.TimeUnit unit,
                        boolean onlyIfAbsent)
      • oldest

        public java.util.Map<K,​V> oldest​(int limit)
        Description copied from interface: Policy.VarExpiration
        Returns an unmodifiable snapshot Map view of the cache with ordered traversal. The order of iteration is from the entries most likely to expire (oldest) to the entries least likely to expire (youngest). This order is determined by the expiration policy's best guess at the time of creating this snapshot view.

        Beware that obtaining the mappings is NOT a constant-time operation. Because of the asynchronous nature of the page replacement policy, determining the retention ordering requires a traversal of the entries.

        Specified by:
        oldest in interface Policy.VarExpiration<K,​V>
        Parameters:
        limit - the maximum size of the returned map (use Integer.MAX_VALUE to disregard the limit)
        Returns:
        a snapshot view of the cache from oldest entry to the youngest
      • youngest

        public java.util.Map<K,​V> youngest​(int limit)
        Description copied from interface: Policy.VarExpiration
        Returns an unmodifiable snapshot Map view of the cache with ordered traversal. The order of iteration is from the entries least likely to expire (youngest) to the entries most likely to expire (oldest). This order is determined by the expiration policy's best guess at the time of creating this snapshot view.

        Beware that obtaining the mappings is NOT a constant-time operation. Because of the asynchronous nature of the page replacement policy, determining the retention ordering requires a traversal of the entries.

        Specified by:
        youngest in interface Policy.VarExpiration<K,​V>
        Parameters:
        limit - the maximum size of the returned map (use Integer.MAX_VALUE to disregard the limit)
        Returns:
        a snapshot view of the cache from youngest entry to the oldest