Package org.spongepowered.asm.mixin.injection.struct

## Class InjectionPointData

- java.lang.Object
- - org.spongepowered.asm.mixin.injection.struct.InjectionPointData

-     public class InjectionPointData
      extends java.lang.Object

  Data read from an `At` annotation and passed into an InjectionPoint ctor

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `InjectionPointData​(IInjectionPointContext context, java.lang.String at, java.util.List<java.lang.String> args, java.lang.String target, java.lang.String slice, int ordinal, int opcode, java.lang.String id, int flags)` |

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ITargetSelector` | `get​(java.lang.String key)` | Get the supplied value from the named args as a target selector, throws an exception if the argument cannot be parsed as a target selector
    `boolean` | `get​(java.lang.String key, boolean defaultValue)` | Get the supplied value from the named args, return defaultValue if the arg is not set
    `int` | `get​(java.lang.String key, int defaultValue)` | Get the supplied value from the named args, return defaultValue if the arg is not set
    `java.lang.String` | `get​(java.lang.String key, java.lang.String defaultValue)` | Get the supplied value from the named args, return defaultValue if the arg is not set
    `<T extends java.lang.Enum<T>> T` | `get​(java.lang.String key, T defaultValue)` | Get the supplied value from the named args, return defaultValue if the arg is not set
    `java.lang.String` | `getAt()` | Get the `at` value on the injector
    `IInjectionPointContext` | `getContext()` | Get the injection point context
    `java.lang.String` | `getDescription()` | Get a description of this injector for use in error messages
    `java.lang.String` | `getId()` | Get the id specified on the injection point (or null if not specified)
    `LocalVariableDiscriminator` | `getLocalVariableDiscriminator()` |
    `IMessageSink` | `getMessageSink()` | Get the message sink for this injection point
    `org.objectweb.asm.tree.MethodNode` | `getMethod()` | Get the annotated method
    `org.objectweb.asm.Type` | `getMethodReturnType()` | Get the return type of the annotated method
    `IMixinContext` | `getMixin()` | Get the mixin context
    `int` | `getOpcode()` | Get the opcode specified on the injection point
    `int` | `getOpcode​(int defaultOpcode)` | Get the opcode specified on the injection point or return the default if no opcode was specified
    `int` | `getOpcode​(int defaultOpcode, int... validOpcodes)` | Get the opcode specified on the injection point or return the default if no opcode was specified or if the specified opcode does not appear in the supplied list of valid opcodes
    `int[]` | `getOpcodeList​(java.lang.String key, int[] defaultValue)` | Get a list of opcodes specified in the injection point arguments.
    `int` | `getOrdinal()` | Get the ordinal specified on the injection point
    `org.objectweb.asm.tree.AnnotationNode` | `getParent()` | Get the root annotation (eg.
    `java.lang.String` | `getSlice()` | Get the slice id specified on the injector
    `InjectionPoint.Specifier` | `getSpecifier()` | Get the specifier value parsed from the injector
    `ITargetSelector` | `getTarget()` | Get the target value specified on the injector
    `InjectionPoint.RestrictTargetLevel` | `getTargetRestriction()` | Get the target restriction specified in the annotation
    `java.lang.String` | `getType()` | Get the parsed constructor `type` for this injector
    `boolean` | `isUnsafe()` | Get whether the `unsafe` option is set on the injection point
    `static java.lang.String` | `parseType​(java.lang.String at)` | Parse a constructor type from the supplied `at` string
    `java.lang.String` | `toString()` |

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

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

- - ### Constructor Detail

    - #### InjectionPointData

          public InjectionPointData​(IInjectionPointContext context,
                                    java.lang.String at,
                                    java.util.List<java.lang.String> args,
                                    java.lang.String target,
                                    java.lang.String slice,
                                    int ordinal,
                                    int opcode,
                                    java.lang.String id,
                                    int flags)

  - ### Method Detail

    - #### getMessageSink

          public IMessageSink getMessageSink()

      Get the message sink for this injection point

    - #### getAt

          public java.lang.String getAt()

      Get the `at` value on the injector

    - #### getType

          public java.lang.String getType()

      Get the parsed constructor `type` for this injector

    - #### getSpecifier

          public InjectionPoint.Specifier getSpecifier()

      Get the specifier value parsed from the injector

    - #### getTargetRestriction

          public InjectionPoint.RestrictTargetLevel getTargetRestriction()

      Get the target restriction specified in the annotation

    - #### getContext

          public IInjectionPointContext getContext()

      Get the injection point context

    - #### getMixin

          public IMixinContext getMixin()

      Get the mixin context

    - #### getMethod

          public org.objectweb.asm.tree.MethodNode getMethod()

      Get the annotated method

    - #### getMethodReturnType

          public org.objectweb.asm.Type getMethodReturnType()

      Get the return type of the annotated method

    - #### getParent

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

      Get the root annotation (eg. `Inject`)

    - #### getSlice

          public java.lang.String getSlice()

      Get the slice id specified on the injector

    - #### getLocalVariableDiscriminator

          public LocalVariableDiscriminator getLocalVariableDiscriminator()

    - #### get

          public java.lang.String get​(java.lang.String key,
                                      java.lang.String defaultValue)

      Get the supplied value from the named args, return defaultValue if the arg is not set
      Parameters:
        `key` - argument name
        `defaultValue` - value to return if the arg is not set
      Returns:
        argument value or default if not set

    - #### get

          public int get​(java.lang.String key,
                         int defaultValue)

      Get the supplied value from the named args, return defaultValue if the arg is not set
      Parameters:
        `key` - argument name
        `defaultValue` - value to return if the arg is not set
      Returns:
        argument value or default if not set

    - #### get

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

      Get the supplied value from the named args, return defaultValue if the arg is not set
      Parameters:
        `key` - argument name
        `defaultValue` - value to return if the arg is not set
      Returns:
        argument value or default if not set

    - #### get

          public <T extends java.lang.Enum<T>> T get​(java.lang.String key,
                                                     T defaultValue)

      Get the supplied value from the named args, return defaultValue if the arg is not set
      Type Parameters:
        `T` - enum type
      Parameters:
        `key` - argument name
        `defaultValue` - value to return if the arg is not set
      Returns:
        argument value or default if not set

    - #### get

          public ITargetSelector get​(java.lang.String key)

      Get the supplied value from the named args as a target selector, throws an exception if the argument cannot be parsed as a target selector
      Parameters:
        `key` - argument name
      Returns:
        argument value as a target selector

    - #### getTarget

          public ITargetSelector getTarget()

      Get the target value specified on the injector

    - #### getDescription

          public java.lang.String getDescription()

      Get a description of this injector for use in error messages

    - #### getOrdinal

          public int getOrdinal()

      Get the ordinal specified on the injection point

    - #### getOpcode

          public int getOpcode()

      Get the opcode specified on the injection point

    - #### getOpcode

          public int getOpcode​(int defaultOpcode)

      Get the opcode specified on the injection point or return the default if no opcode was specified
      Parameters:
        `defaultOpcode` - opcode to return if none specified
      Returns:
        opcode or default

    - #### getOpcode

          public int getOpcode​(int defaultOpcode,
                               int... validOpcodes)

      Get the opcode specified on the injection point or return the default if no opcode was specified or if the specified opcode does not appear in the supplied list of valid opcodes
      Parameters:
        `defaultOpcode` - opcode to return if none specified
        `validOpcodes` - valid opcodes
      Returns:
        opcode or default

    - #### getOpcodeList

          public int[] getOpcodeList​(java.lang.String key,
                                     int[] defaultValue)

      Get a list of opcodes specified in the injection point arguments. The opcodes can be specified as raw integer values or as their corresponding constant name from the `Opcodes` interface. All the values should be separated by spaces or commas. The returned array is sorted in order to make it suitable for use with the `Arrays#binarySearch` method.
      Parameters:
        `key` - argument name
        `defaultValue` - value to return if the key is not specified
      Returns:
        parsed opcodes as array or default value if the key is not specified in the args

    - #### getId

          public java.lang.String getId()

      Get the id specified on the injection point (or null if not specified)

    - #### isUnsafe

          public boolean isUnsafe()

      Get whether the `unsafe` option is set on the injection point

    - #### toString

          public java.lang.String toString()

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

    - #### parseType

          public static java.lang.String parseType​(java.lang.String at)

      Parse a constructor type from the supplied `at` string
      Parameters:
        `at` - at to parse
      Returns:
        parsed constructor type