public abstract class GeneratedInvocationPlugin extends InvocationPlugin.InlineOnlyInvocationPlugin
Node.NodeIntrinsic or
Fold.InvocationPlugin.InlineOnlyInvocationPlugin, InvocationPlugin.OptionalInvocationPlugin, InvocationPlugin.Receiver, InvocationPlugin.RequiredInlineOnlyInvocationPlugin, InvocationPlugin.RequiredInvocationPluginargumentsDescriptor, isStatic, name| Constructor and Description |
|---|
GeneratedInvocationPlugin(String name,
Type... argumentTypes) |
| Modifier and Type | Method and Description |
|---|---|
protected boolean |
checkInjectedArgument(GraphBuilderContext b,
ValueNode arg,
ResolvedJavaMethod foldAnnotatedMethod) |
abstract boolean |
execute(GraphBuilderContext b,
ResolvedJavaMethod targetMethod,
InvocationPlugin.Receiver receiver,
ValueNode[] args)
Executes this plugin against a set of invocation arguments.
|
abstract Class<? extends Annotation> |
getSource()
Gets the class of the annotation for which this plugin was generated.
|
String |
getSourceLocation() |
boolean |
isGeneratedFromFoldOrNodeIntrinsic() |
inlineOnlyapply, apply, apply, apply, apply, apply, apply, apply, apply, apply, apply, apply, apply, apply, canBeDisabled, defaultHandler, getArgumentsSize, getMethodNameWithArgumentsDescriptor, isDecorator, isOptional, match, match, rewriteReceiverTypepublic abstract Class<? extends Annotation> getSource()
public abstract boolean execute(GraphBuilderContext b, ResolvedJavaMethod targetMethod, InvocationPlugin.Receiver receiver, ValueNode[] args)
InvocationPluginInvocationPlugin dispatches to the apply(...)
method that matches the number of arguments.execute in class InvocationPlugintargetMethod - the method for which this plugin is being appliedreceiver - access to the receiver, null if targetMethod is staticargs - all arguments to the invocation include the receiver in position
0 if targetMethod is not statictrue if this plugin handled the invocation of targetMethod
false if the graph builder should process the invoke further (e.g., by
inlining it or creating an Invoke node). A plugin that does not handle an
invocation must not modify the graph being constructed unless it is a
decorator.public String getSourceLocation()
getSourceLocation in class InvocationPluginprotected boolean checkInjectedArgument(GraphBuilderContext b, ValueNode arg, ResolvedJavaMethod foldAnnotatedMethod)
public final boolean isGeneratedFromFoldOrNodeIntrinsic()