Package org.spongepowered.asm.util

## Class Annotations.Handle

- java.lang.Object
- - org.spongepowered.asm.util.Annotations.Handle

- All Implemented Interfaces:
    `IAnnotationHandle`
  Enclosing class:
    Annotations

      public static class Annotations.Handle
      extends java.lang.Object
      implements IAnnotationHandle

  Wrapper for `AnnotationNode` to support access via common interface

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `boolean` | `exists()` | Get whether the annotation inside the handle actually exists, if the contained element is null, returns false.
    `IAnnotationHandle` | `getAnnotation​(java.lang.String key)` | Get an annotation value as an annotation handle
    `java.util.List<IAnnotationHandle>` | `getAnnotationList​(java.lang.String key)` | Retrieve an annotation key as a list of annotation handles
    `boolean` | `getBoolean​(java.lang.String key, boolean defaultValue)` | Get the primitive boolean value with the specified key or return null if not present or not set
    `java.lang.String` | `getDesc()` | Get the annotation descriptor
    `<T> java.util.List<T>` | `getList()` | Retrieve the annotation value as a list with values of the specified type.
    `<T> java.util.List<T>` | `getList​(java.lang.String key)` | Retrieve the annotation value with the specified key as a list with values of the specified type.
    `org.objectweb.asm.tree.AnnotationNode` | `getNode()` |
    `java.util.List<org.objectweb.asm.Type>` | `getTypeList​(java.lang.String key)` | Retrieve an annotation key as a list of Types.
    `org.objectweb.asm.Type` | `getTypeValue​(java.lang.String key)` | Get an annotation value as an ASM `Type`.
    `<T> T` | `getValue()` | Get the annotation value or return null if not present or not set
    `<T> T` | `getValue​(java.lang.String key)` | Get the annotation value with the specified key or return null if not present or not set
    `<T> T` | `getValue​(java.lang.String key, T defaultValue)` | Get a value with the specified key from this annotation, return the specified default value if the key is not set or is not present
    `java.lang.String` | `toString()` |

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

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Method Detail

    - #### exists

          public boolean exists()

      Description copied from interface: `IAnnotationHandle`
      Get whether the annotation inside the handle actually exists, if the contained element is null, returns false.
      Specified by:
        `exists` in interface `IAnnotationHandle`
      Returns:
        true if the annotation exists

    - #### getNode

          public org.objectweb.asm.tree.AnnotationNode getNode()

    - #### getDesc

          public java.lang.String getDesc()

      Description copied from interface: `IAnnotationHandle`
      Get the annotation descriptor
      Specified by:
        `getDesc` in interface `IAnnotationHandle`

    - #### getAnnotationList

          public java.util.List<IAnnotationHandle> getAnnotationList​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Retrieve an annotation key as a list of annotation handles
      Specified by:
        `getAnnotationList` in interface `IAnnotationHandle`
      Parameters:
        `key` - key to fetch
      Returns:
        list of annotations

    - #### getTypeValue

          public org.objectweb.asm.Type getTypeValue​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Get an annotation value as an ASM `Type`. This is special-cased because the different APIs return class literals in different ways. Under ASM we will receieve `Type` instances, but at compile time we will get `TypeMirror`s instead. This overload is provided so that subclasses have to marshal everything into `Type` for consistency.
      Specified by:
        `getTypeValue` in interface `IAnnotationHandle`
      Parameters:
        `key` - key to fetch
      Returns:
        value

    - #### getTypeList

          public java.util.List<org.objectweb.asm.Type> getTypeList​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Retrieve an annotation key as a list of Types. This is special-cased because the different APIs return class literals in different ways. Under ASM we will receieve `Type` instances, but at compile time we will get `TypeMirror`s instead. This overload is provided so that subclasses have to marshal everything into `Type` for consistency.
      Specified by:
        `getTypeList` in interface `IAnnotationHandle`
      Parameters:
        `key` - key to fetch
      Returns:
        list of types

    - #### getAnnotation

          public IAnnotationHandle getAnnotation​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Get an annotation value as an annotation handle
      Specified by:
        `getAnnotation` in interface `IAnnotationHandle`
      Parameters:
        `key` - key to search for in the value map
      Returns:
        value or `null` if not set

    - #### getValue

          public <T> T getValue​(java.lang.String key,
                                T defaultValue)

      Description copied from interface: `IAnnotationHandle`
      Get a value with the specified key from this annotation, return the specified default value if the key is not set or is not present
      Specified by:
        `getValue` in interface `IAnnotationHandle`
      Type Parameters:
        `T` - duck type
      Parameters:
        `key` - key
        `defaultValue` - value to return if the key is not set or not present
      Returns:
        value or default if not set

    - #### getValue

          public <T> T getValue()

      Description copied from interface: `IAnnotationHandle`
      Get the annotation value or return null if not present or not set
      Specified by:
        `getValue` in interface `IAnnotationHandle`
      Type Parameters:
        `T` - duck type
      Returns:
        value or null if not present or not set

    - #### getValue

          public <T> T getValue​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Get the annotation value with the specified key or return null if not present or not set
      Specified by:
        `getValue` in interface `IAnnotationHandle`
      Type Parameters:
        `T` - duck type
      Parameters:
        `key` - key to fetch
      Returns:
        value or null if not present or not set

    - #### getBoolean

          public boolean getBoolean​(java.lang.String key,
                                    boolean defaultValue)

      Description copied from interface: `IAnnotationHandle`
      Get the primitive boolean value with the specified key or return null if not present or not set
      Specified by:
        `getBoolean` in interface `IAnnotationHandle`
      Parameters:
        `key` - key to fetch
        `defaultValue` - default value to return if value is not present
      Returns:
        value or default if not present or not set

    - #### getList

          public <T> java.util.List<T> getList()

      Description copied from interface: `IAnnotationHandle`
      Retrieve the annotation value as a list with values of the specified type. Returns an empty list if the value is not present or not set.
      Specified by:
        `getList` in interface `IAnnotationHandle`
      Type Parameters:
        `T` - list element duck type
      Returns:
        list of values

    - #### getList

          public <T> java.util.List<T> getList​(java.lang.String key)

      Description copied from interface: `IAnnotationHandle`
      Retrieve the annotation value with the specified key as a list with values of the specified type. Returns an empty list if the value is not present or not set.
      Specified by:
        `getList` in interface `IAnnotationHandle`
      Type Parameters:
        `T` - list element duck type
      Parameters:
        `key` - key to fetch
      Returns:
        list of values

    - #### toString

          public java.lang.String toString()

      Overrides:
        `toString` in class `java.lang.Object`