# Package org.spongepowered.asm.mixin.injection

Injectors are class postprocessors which search for annotated methods merged by mixins and perform weaving operations as requested.

- Interface Summary
  Interface | Description
  --- | ---
  IInjectionPointContext | Context for an injection point, used to access the mixin as well as the owner method and annotation for the injection point

- Class Summary
  Class | Description
  --- | ---
  InjectionPoint | Base class for injection point discovery classes.
  InjectionPoint.Flags | Boolean extensions for the At parser, mainly to avoid having to add many booleans in the future

- Enum Summary
  Enum | Description
  --- | ---
  At.Shift | Shift is used to shift resulting opcodes
  Constant.Condition | Available options for the `Constant.expandZeroConditions()` setting.
  InjectionPoint.RestrictTargetLevel | Target restriction level for different injection point types when used by restricted injectors (eg.
  InjectionPoint.Specifier | Additional specifier for injection points.

- Annotation Types Summary
  Annotation Type | Description
  --- | ---
  At | Annotation for specifying the type of `InjectionPoint` to use to perform an `Inject` process.
  Coerce | Usage with callback injectors (`@Inject`)
  Constant | Annotation for specifying the injection point for an `ModifyConstant` injector.
  Desc | A descriptor for matching a target element, for details of usage see `DynamicSelectorDesc`.
  Descriptors | Collection type for `Desc` to allow `Repeatable` to work.
  Group | This annotation can be used on any injector callback to define a value for total required injections across multiple callbacks.
  Inject | Specifies that this mixin method should inject a callback (or callbacks) to itself in the target method(s) identified by `Inject.method()`.
  InjectionPoint.AtCode | Injection point code for `At` annotations to use
  ModifyArg | Specifies that this mixin method should inject an argument modifier to itself in the target method(s) identified by `ModifyArg.method()`.
  ModifyArgs | Specifies that this mixin method should inject an multi-argument modifier callback to itself in the target method(s) identified by `ModifyArgs.method()`.
  ModifyConstant | Specifies that this mixin method should inject a constant modifier callback to itself in the target method(s) identified by `ModifyConstant.method()` at the specified LDC (or specialised const opcode) instruction in order to adjust the constant value returned.
  ModifyVariable | Specifies that this mixin method should inject a variable modifier callback to itself in the target method(s) identified by `ModifyVariable.method()`.
  Next | See `@Desc.next`
  Redirect | Specifies that this mixin method should redirect the specified method call, field access or object construction (via the `new` keyword) to the method decorated with this annotation.
  Slice | A `Slice` identifies a section of a method to search for injection points.
  Surrogate | Annotation used to decorate surrogate injector methods.