Package org.codehaus.groovy.classgen.asm

# Enum Class PackStrategy

java.lang.Object
java.lang.Enum<PackStrategy>
org.codehaus.groovy.classgen.asm.PackStrategy

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

public enum PackStrategy extends Enum<PackStrategy>
The compilation strategy the GEP-27 capability analysis selects for a closure literal: keep today's per-closure class, or pack the closure by hoisting its body to a method on the enclosing class behind a shared `PackedClosure` adapter. The GEP-27 lattice also foresees a metafactory strategy (functional-interface targets) and object elision, but those are separate, later work and are not represented here yet.

- ## 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
  `FULL_CLASS`
  S0 — generate the per-closure class (today's behaviour); preserves all `Closure` capabilities.
  `PACKED_ADAPTER`
  S1 — hoist the body to a method on the enclosing class behind a shared `PackedClosure` adapter.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static PackStrategy`
  `valueOf(String name)`
  Returns the enum constant of this class with the specified name.
  `static PackStrategy[]`
  `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

  - ### FULL_CLASS

    public static final PackStrategy FULL_CLASS
    S0 — generate the per-closure class (today's behaviour); preserves all `Closure` capabilities.

  - ### PACKED_ADAPTER

    public static final PackStrategy PACKED_ADAPTER
    S1 — hoist the body to a method on the enclosing class behind a shared `PackedClosure` adapter.

- ## Method Details

  - ### values

    public static PackStrategy[] 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 PackStrategy 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