Package org.spongepowered.asm.mixin.transformer

## Enum ClassInfo.Traversal

- java.lang.Object
- - java.lang.Enum<ClassInfo.Traversal>
  - - org.spongepowered.asm.mixin.transformer.ClassInfo.Traversal

- All Implemented Interfaces:
    `java.io.Serializable`, `java.lang.Comparable<ClassInfo.Traversal>`
  Enclosing class:
    ClassInfo

      public static enum ClassInfo.Traversal
      extends java.lang.Enum<ClassInfo.Traversal>

  To all intents and purposes, the "real" class hierarchy and the mixin class hierarchy exist in parallel, this means that for some hierarchy validation operations we need to walk across to the other hierarchy in order to allow meaningful validation to occur.

  This enum defines the type of traversal operations which are allowed for a particular lookup.

  Each traversal type has a `next` property which defines the traversal type to use on the next step of the hierarchy validation. For example, the type `IMMEDIATE` which requires an immediate match falls through to `NONE` on the next step, which prevents further traversals from occurring in the lookup.

- - ### Enum Constant Summary

    Enum Constants
    Enum Constant | Description
    --- | ---
    `ALL` | Traversal is allowed at all stages.
    `IMMEDIATE` | Traversal is allowed at the bottom of the hierarchy but no further.
    `NONE` | No traversals are allowed.
    `SUPER` | Traversal is allowed only on superclasses and not at the bottom of the hierarchy.

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `canTraverse()` | Return whether this traversal type allows traversal
    `ClassInfo.SearchType` | `getSearchType()` |
    `ClassInfo.Traversal` | `next()` | Return the next traversal type for this traversal type
    `static ClassInfo.Traversal` | `valueOf​(java.lang.String name)` | Returns the enum constant of this type with the specified name.
    `static ClassInfo.Traversal[]` | `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

    - #### NONE

          public static final ClassInfo.Traversal NONE

      No traversals are allowed.

    - #### ALL

          public static final ClassInfo.Traversal ALL

      Traversal is allowed at all stages.

    - #### IMMEDIATE

          public static final ClassInfo.Traversal IMMEDIATE

      Traversal is allowed at the bottom of the hierarchy but no further.

    - #### SUPER

          public static final ClassInfo.Traversal SUPER

      Traversal is allowed only on superclasses and not at the bottom of the hierarchy.

  - ### Method Detail

    - #### values

          public static ClassInfo.Traversal[] 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 (ClassInfo.Traversal c : ClassInfo.Traversal.values())
              System.out.println(c);

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

    - #### valueOf

          public static ClassInfo.Traversal 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

    - #### next

          public ClassInfo.Traversal next()

      Return the next traversal type for this traversal type

    - #### canTraverse

          public boolean canTraverse()

      Return whether this traversal type allows traversal

    - #### getSearchType

          public ClassInfo.SearchType getSearchType()