Package org.spongepowered.asm.mixin.injection.invoke

## Class InvokeInjector

- java.lang.Object
- - org.spongepowered.asm.mixin.injection.code.Injector
  - - org.spongepowered.asm.mixin.injection.invoke.InvokeInjector

- Direct Known Subclasses:
    `ModifyArgInjector`, `ModifyArgsInjector`, `RedirectInjector`

      public abstract class InvokeInjector
      extends Injector

  Base class for injectors which inject at method invokes

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class org.spongepowered.asm.mixin.injection.code.Injector

      `Injector.InjectorData, Injector.TargetNode`

  - ### Field Summary

    - ### Fields inherited from class org.spongepowered.asm.mixin.injection.code.Injector

      `annotationType, classNode, info, isInterface, isStatic, logger, methodArgs, methodNode, returnType`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `InvokeInjector​(InjectionInfo info, java.lang.String annotationType)` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `protected void` | `checkTarget​(Target target)` | Sanity checks on target
    `protected void` | `inject​(Target target, InjectionNodes.InjectionNode node)` |
    `protected abstract void` | `injectAtInvoke​(Target target, InjectionNodes.InjectionNode node)` | Perform a single injection
    `protected void` | `sanityCheck​(Target target, java.util.List<InjectionPoint> injectionPoints)` |

    - ### Methods inherited from class org.spongepowered.asm.mixin.injection.code.Injector

      `addTargetNode, addTargetNode, canCoerce, canCoerce, canCoerce, checkCoerce, checkTargetForNode, checkTargetModifiers, find, findTargetNodes, inject, invokeHandler, invokeHandler, invokeHandlerWithArgs, invokeHandlerWithArgs, postInject, preInject, preInject, pushArgs, pushArgs, storeArgs, storeArgs, storeArgs, storeArgs, throwException, toString, validateParams`

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

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

- - ### Constructor Detail

    - #### InvokeInjector

          public InvokeInjector​(InjectionInfo info,
                                java.lang.String annotationType)

      Parameters:
        `info` - Information about this injection
        `annotationType` - Annotation type, used for error messages

  - ### Method Detail

    - #### sanityCheck

          protected void sanityCheck​(Target target,
                                     java.util.List<InjectionPoint> injectionPoints)

      Overrides:
        `sanityCheck` in class `Injector`

    - #### checkTarget

          protected void checkTarget​(Target target)

      Sanity checks on target
      Parameters:
        `target` - target

    - #### inject

          protected void inject​(Target target,
                                InjectionNodes.InjectionNode node)

      Specified by:
        `inject` in class `Injector`

    - #### injectAtInvoke

          protected abstract void injectAtInvoke​(Target target,
                                                 InjectionNodes.InjectionNode node)

      Perform a single injection
      Parameters:
        `target` - Target to inject into
        `node` - Discovered instruction node