Class SimpleLinkRequest
java.lang.Object
jdk.dynalink.linker.support.SimpleLinkRequest
- All Implemented Interfaces:
LinkRequest
Default simple implementation of
LinkRequest.- Since:
- 9
-
Constructor Summary
ConstructorsConstructorDescriptionSimpleLinkRequest(CallSiteDescriptor callSiteDescriptor, boolean callSiteUnstable, Object... arguments) Creates a new link request. -
Method Summary
Modifier and TypeMethodDescriptionObject[]Returns the arguments for the invocation being linked.Returns the call site descriptor for the call site being linked.Returns the first argument for the invocation being linked; this is typically the receiver object.booleanReturns true if the call site is considered unstable, that is, it has been relinked more times than was specified inDynamicLinkerFactory.setUnstableRelinkThreshold(int).replaceArguments(CallSiteDescriptor newCallSiteDescriptor, Object... newArguments) Returns a request identical to this one with call site descriptor and arguments replaced with the ones specified.Methods declared in class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitModifier and TypeMethodDescriptionprotected Objectclone()Answers a new instance of the same class as the receiver, whose slots have been filled in with the values in the slots of the receiver.booleanCompares the argument to the receiver, and answers true if they represent the same object using a class specific comparison.protected voidfinalize()Deprecated, for removal: This API element is subject to removal in a future version.May cause performance issues, deadlocks and hangs.getClass()Answers the unique instance of java.lang.Class which represents the class of the receiver.inthashCode()Answers an integer hash code for the receiver.final voidnotify()Causes one thread which iswaiting on the receiver to be made ready to run.final voidCauses all threads which arewaiting on the receiver to be made ready to run.toString()Answers a string containing a concise, human-readable description of the receiver.final voidwait()Causes the thread which sent this message to be made not ready to run pending some change in the receiver (as indicated bynotifyornotifyAll).final voidwait(long time) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.final voidwait(long time, int frac) Causes the thread which sent this message to be made not ready to run either pending some change in the receiver (as indicated bynotifyornotifyAll) or the expiration of the timeout.
-
Constructor Details
-
SimpleLinkRequest
public SimpleLinkRequest(CallSiteDescriptor callSiteDescriptor, boolean callSiteUnstable, Object... arguments) Creates a new link request.- Parameters:
callSiteDescriptor- the descriptor for the call site being linked. Must not be null.callSiteUnstable- true if the call site being linked is considered unstable.arguments- the arguments for the invocation. Must not be null.- Throws:
NullPointerException- if eithercallSiteDescriptororargumentsis null.
-
-
Method Details
-
getArguments
Description copied from interface:LinkRequestReturns the arguments for the invocation being linked. The returned array must be a clone; modifications to it must not affect the arguments in this request.- Specified by:
getArgumentsin interfaceLinkRequest- Returns:
- the arguments for the invocation being linked.
-
getReceiver
Description copied from interface:LinkRequestReturns the first argument for the invocation being linked; this is typically the receiver object. This is a shorthand forgetArguments()[0]that also avoids the cloning of the arguments array.- Specified by:
getReceiverin interfaceLinkRequest- Returns:
- the receiver object.
-
getCallSiteDescriptor
Description copied from interface:LinkRequestReturns the call site descriptor for the call site being linked.- Specified by:
getCallSiteDescriptorin interfaceLinkRequest- Returns:
- the call site descriptor for the call site being linked.
-
isCallSiteUnstable
public boolean isCallSiteUnstable()Description copied from interface:LinkRequestReturns true if the call site is considered unstable, that is, it has been relinked more times than was specified inDynamicLinkerFactory.setUnstableRelinkThreshold(int). Linkers should use this as a hint to prefer producing linkage that is more stable (its guard fails less frequently), even if that assumption causes a less effective version of an operation to be linked. This is just a hint, though, and linkers are allowed to ignore this property.- Specified by:
isCallSiteUnstablein interfaceLinkRequest- Returns:
- true if the call site is considered unstable.
-
replaceArguments
public LinkRequest replaceArguments(CallSiteDescriptor newCallSiteDescriptor, Object... newArguments) Description copied from interface:LinkRequestReturns a request identical to this one with call site descriptor and arguments replaced with the ones specified.- Specified by:
replaceArgumentsin interfaceLinkRequest- Parameters:
newCallSiteDescriptor- the new call site descriptornewArguments- the new arguments- Returns:
- a new request identical to this one, except with the call site descriptor and arguments replaced with the specified ones.
-