Package org.codehaus.groovy.util

# Enum Class ReferenceType

java.lang.Object
java.lang.Enum<ReferenceType>
org.codehaus.groovy.util.ReferenceType

All Implemented Interfaces:
  `Serializable`, `Comparable<ReferenceType>`, `Constable`

public enum ReferenceType extends Enum<ReferenceType>
Supported reference implementations for managed references.

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class java.lang.Enum

  `Enum.EnumDesc<E extends Enum<E>>`

- ## Enum Constant Summary

  Enum Constants
  Enum Constant
  Description
  `HARD`
  Stores referents strongly until cleared explicitly.
  `PHANTOM`
  Stores referents as phantom references for post-mortem cleanup only.
  `SOFT`
  Stores referents as softly reachable values that may be cleared under memory pressure.
  `WEAK`
  Stores referents as weakly reachable values that may be cleared once weakly reachable.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `protected abstract <T, V extends Finalizable>
  Reference<T,V>`
  `createReference(T value, V handler, ReferenceQueue queue)`
  Creates a reference of this type for the supplied referent and handler.
  `static ReferenceType`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static ReferenceType[]`
  `values()`
  Returns an array containing the constants of this enum class, in the order they are declared.

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

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

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

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

- ## Enum Constant Details

  - ### SOFT

    public static final ReferenceType SOFT
    Stores referents as softly reachable values that may be cleared under memory pressure.

  - ### WEAK

    public static final ReferenceType WEAK
    Stores referents as weakly reachable values that may be cleared once weakly reachable.

  - ### PHANTOM

    public static final ReferenceType PHANTOM
    Stores referents as phantom references for post-mortem cleanup only.

  - ### HARD

    public static final ReferenceType HARD
    Stores referents strongly until cleared explicitly.

- ## Method Details

  - ### values

    public static ReferenceType[] values()
    Returns an array containing the constants of this enum class, in the order they are declared.
    Returns:
      an array containing the constants of this enum class, in the order they are declared

  - ### valueOf

    public static ReferenceType valueOf(String name)
    Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (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:
      `IllegalArgumentException` - if this enum class has no constant with the specified name
      `NullPointerException` - if the argument is null

  - ### createReference

    protected abstract <T, V extends Finalizable> Reference<T,V> createReference(T value, V handler, ReferenceQueue queue)
    Creates a reference of this type for the supplied referent and handler.
    Type Parameters:
      `T` - the referent type
      `V` - the handler type
    Parameters:
      `value` - the referent to wrap
      `handler` - the cleanup handler associated with the reference
      `queue` - the queue to notify for queue-backed references
    Returns:
      the created reference