com.google.common.cache

## Enum RemovalCause

- java.lang.Object
- - java.lang.Enum<RemovalCause>
  - - com.google.common.cache.RemovalCause

- All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<RemovalCause>

      @GwtCompatible
      public enum RemovalCause
      extends java.lang.Enum<RemovalCause>

  The reason why a cached entry was removed.
  Since:
    10.0

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant and Description
    `COLLECTED` The entry was removed automatically because its key or value was garbage-collected.
    `EXPIRED` The entry's expiration timestamp has passed.
    `EXPLICIT` The entry was manually removed by the user.
    `REPLACED` The entry itself was not actually removed, but its value was replaced by the user.
    `SIZE` The entry was evicted due to size constraints.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `static RemovalCause` | `valueOf(java.lang.String name)` Returns the enum constant of this type with the specified name.
    `static RemovalCause[]` | `values()` Returns an array containing the constants of this enum type, in the order they are declared.

    - ### Methods inherited from class java.lang.Enum

      `clone, compareTo, equals, finalize, getDeclaringClass, hashCode, name, ordinal, toString, valueOf`

    - ### Methods inherited from class java.lang.Object

      `getClass, notify, notifyAll, wait, wait, wait`

- - ### Enum Constant Detail

    - #### EXPLICIT

          public static final RemovalCause EXPLICIT

      The entry was manually removed by the user. This can result from the user invoking `Cache.invalidate(java.lang.Object)`, `Cache.invalidateAll(Iterable)`, `Cache.invalidateAll()`, `Map.remove(java.lang.Object)`, `ConcurrentMap.remove(java.lang.Object, java.lang.Object)`, or `Iterator.remove()`.

    - #### REPLACED

          public static final RemovalCause REPLACED

      The entry itself was not actually removed, but its value was replaced by the user. This can result from the user invoking `Cache.put(K, V)`, `LoadingCache.refresh(K)`, `Map.put(K, V)`, `Map.putAll(java.util.Map<? extends K, ? extends V>)`, `ConcurrentMap.replace(Object, Object)`, or `ConcurrentMap.replace(Object, Object, Object)`.

    - #### COLLECTED

          public static final RemovalCause COLLECTED

      The entry was removed automatically because its key or value was garbage-collected. This can occur when using `CacheBuilder.weakKeys()`, `CacheBuilder.weakValues()`, or `CacheBuilder.softValues()`.

    - #### EXPIRED

          public static final RemovalCause EXPIRED

      The entry's expiration timestamp has passed. This can occur when using `CacheBuilder.expireAfterWrite(long, java.util.concurrent.TimeUnit)` or `CacheBuilder.expireAfterAccess(long, java.util.concurrent.TimeUnit)`.

    - #### SIZE

          public static final RemovalCause SIZE

      The entry was evicted due to size constraints. This can occur when using `CacheBuilder.maximumSize` or `CacheBuilder.maximumWeight`.

  - ### Method Detail

    - #### values

          public static RemovalCause[] values()

      Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:

          for (RemovalCause c : RemovalCause.values())
              System.out.println(c);

      Returns:
        an array containing the constants of this enum type, in the order they are declared

    - #### valueOf

          public static RemovalCause valueOf(java.lang.String name)

      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
        `name` - the name of the enum constant to be returned.
      Returns:
        the enum constant with the specified name
      Throws:
        `java.lang.IllegalArgumentException` - if this enum type has no constant with the specified name
        `java.lang.NullPointerException` - if the argument is null