GuardingDynamicLinker (Java SE 15 & JDK 15) (original) (raw)

All Known Subinterfaces:

[TypeBasedGuardingDynamicLinker](TypeBasedGuardingDynamicLinker.html "interface in jdk.dynalink.linker")

All Known Implementing Classes:

[BeansLinker](../beans/BeansLinker.html "class in jdk.dynalink.beans"), [CompositeGuardingDynamicLinker](support/CompositeGuardingDynamicLinker.html "class in jdk.dynalink.linker.support"), [CompositeTypeBasedGuardingDynamicLinker](support/CompositeTypeBasedGuardingDynamicLinker.html "class in jdk.dynalink.linker.support")


public interface GuardingDynamicLinker

The base interface for language-specific dynamic linkers. Such linkers always have to produce method handles with guards, as the validity of the method handle for calls at a call site inevitably depends on some condition (at the very least, it depends on the receiver belonging to the language runtime of the linker). Language runtime implementors will normally implement the linking logic for their own language as one or moreGuardingDynamicLinker classes. They will typically set them asprioritized linkers in the DynamicLinkerFactory they configure for themselves, and maybe also set some as fallback linkers to handle language-specific "property not found" etc. conditions.

Consider implementing TypeBasedGuardingDynamicLinker interface instead of this interface for those linkers that are based on the Java class of the objects. If you need to implement language-specific type conversions, have your GuardingDynamicLinker also implement theGuardingTypeConverterFactory interface.

Languages can export linkers to other language runtimes forautomatic discovery using a GuardingDynamicLinkerExporter.

Modifier and Type Method Description
GuardedInvocation getGuardedInvocation​(LinkRequest linkRequest,LinkerServices linkerServices) Creates a guarded invocation appropriate for a particular invocation with the specified arguments at a call site.