Class CallbackInjector
java.lang.Object
org.spongepowered.asm.mixin.injection.code.Injector
org.spongepowered.asm.mixin.injection.callback.CallbackInjector
This class is responsible for generating the bytecode for injected callbacks,
for details of usage see
@Inject
.-
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
ConstructorsConstructorDescriptionCallbackInjector
(InjectionInfo info, boolean cancellable, LocalCapture localCapture, String identifier) Make a new CallbackInjector with the supplied args -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addTargetNode
(InjectorTarget injectorTarget, List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, Set<InjectionPoint> nominators) protected void
inject
(Target target, InjectionNodes.InjectionNode node) protected void
injectCancellationCode
(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback) if (e.isCancelled()) return e.getReturnValue();protected void
injectReturnCode
(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback) Inject the appropriate return code for the method typeprotected void
instanceCallbackInfo
(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback, String id, String desc, boolean store) protected boolean
isStatic()
Explicit to avoid creation of synthetic accessorprotected void
preInject
(Target target, InjectionNodes.InjectionNode node) protected void
sanityCheck
(Target target, List<InjectionPoint> injectionPoints) Methods inherited from class org.spongepowered.asm.mixin.injection.code.Injector
addTargetNode, canCoerce, canCoerce, canCoerce, checkCoerce, checkTargetForNode, checkTargetModifiers, find, findTargetNodes, inject, invokeHandler, invokeHandler, invokeHandlerWithArgs, invokeHandlerWithArgs, postInject, preInject, pushArgs, pushArgs, storeArgs, storeArgs, storeArgs, storeArgs, throwException, toString, validateParams
-
Constructor Details
-
CallbackInjector
public CallbackInjector(InjectionInfo info, boolean cancellable, LocalCapture localCapture, String identifier) Make a new CallbackInjector with the supplied args- Parameters:
info
- information about this injectorcancellable
- True if injections performed by this injector should be cancellablelocalCapture
- Local variable capture behaviour
-
-
Method Details
-
sanityCheck
- Overrides:
sanityCheck
in classInjector
-
addTargetNode
protected void addTargetNode(InjectorTarget injectorTarget, List<InjectionNodes.InjectionNode> myNodes, org.objectweb.asm.tree.AbstractInsnNode node, Set<InjectionPoint> nominators) - Overrides:
addTargetNode
in classInjector
-
preInject
-
inject
-
instanceCallbackInfo
protected void instanceCallbackInfo(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback, String id, String desc, boolean store) - Parameters:
callback
- callback handleid
- callback iddesc
- constructor descriptorstore
- true if storing in a local, false if this is happening at an invoke
-
injectCancellationCode
protected void injectCancellationCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback) if (e.isCancelled()) return e.getReturnValue();- Parameters:
callback
- callback handle
-
injectReturnCode
protected void injectReturnCode(org.spongepowered.asm.mixin.injection.callback.CallbackInjector.Callback callback) Inject the appropriate return code for the method type- Parameters:
callback
- callback handle
-
isStatic
protected boolean isStatic()Explicit to avoid creation of synthetic accessor- Returns:
- true if the target method is static
-