# 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
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
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
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
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.