APIdia Launch Partner
Top Description Interfaces Classes
module jdk.dynalink

Package jdk.dynalink.linker


Contains interfaces and classes needed by language runtimes to implement their own language-specific object models and type conversions. The main entry point is the jdk.dynalink.linker.GuardingDynamicLinker interface. It needs to be implemented in order to provide linking for the runtime's own object model. A language runtime can have more than one guarding dynamic linker implementation. When a runtime is configuring Dynalink for itself, it will normally set these guarding linkers as the prioritized linkers in its jdk.dynalink.DynamicLinkerFactory (and maybe some of them as fallback linkers, for e.g. handling "method not found" and similar errors in a language-specific manner if no other linker managed to handle the operation.)

A language runtime that wishes to make at least some of its linkers available to other language runtimes for interoperability will need to use a jdk.dynalink.linker.GuardingDynamicLinkerExporter.

Most language runtimes will be able to implement their own linking logic by implementing jdk.dynalink.linker.TypeBasedGuardingDynamicLinker instead of jdk.dynalink.linker.GuardingDynamicLinker; it allows for faster type-based linking dispatch.

Language runtimes that allow type conversions other than those provided by Java will need to have their guarding dynamic linker (or linkers) also implement the jdk.dynalink.linker.GuardingTypeConverterFactory interface to provide the logic for these conversions.

Since
9

Interface Summary

Modifier and TypeInterface and Description
public interface
ConversionComparator

Optional interface to be implemented by GuardingTypeConverterFactory implementers.

public interface
GuardedInvocationTransformer

Interface for objects that are used to transform one guarded invocation into another one.

public interface
GuardingDynamicLinker

The base interface for language-specific dynamic linkers.

public interface
GuardingTypeConverterFactory

Optional interface that can be implemented by GuardingDynamicLinker implementations to provide language-specific type conversion capabilities.

public interface
LinkerServices

Interface for services provided to GuardingDynamicLinker instances by the DynamicLinker that owns them.

public interface
LinkRequest

Represents a request to link a particular invocation at a particular call site.

public interface
MethodHandleTransformer

A generic interface describing operations that transform method handles.

public interface
MethodTypeConversionStrategy

Interface for objects representing a strategy for converting a method handle to a new type.

public interface
TypeBasedGuardingDynamicLinker

A guarding dynamic linker that can determine whether it can link the call site solely based on the type of the first argument at linking invocation time.

Class Summary

Modifier and TypeClass and Description
public class
GuardedInvocation

Represents a conditionally valid method handle.

public abstract class
GuardingDynamicLinkerExporter

A class acting as a supplier of guarding dynamic linkers that can be automatically loaded by other language runtimes.