# Interface TypeBasedGuardingDynamicLinker

All Superinterfaces:
  `GuardingDynamicLinker`

All Known Implementing Classes:
  `CompositeTypeBasedGuardingDynamicLinker`

public interface TypeBasedGuardingDynamicLinker extends GuardingDynamicLinker
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. (The first argument is usually the receiver). Most language-specific linkers will fall into this category, as they recognize their native objects as Java objects of classes implementing a specific language-native interface or superclass. The linker mechanism can optimize the dispatch for these linkers, see `CompositeTypeBasedGuardingDynamicLinker`.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `canLinkType(Class<?> type)`
  Returns true if the linker can link an invocation where the first argument (receiver) is of the specified type.

  ### Methods declared in interface GuardingDynamicLinker

  `getGuardedInvocation`
  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.

- ## Method Details

  - ### canLinkType

    boolean canLinkType(Class<?> type)
    Returns true if the linker can link an invocation where the first argument (receiver) is of the specified type.
    Parameters:
      `type` - the type to link
    Returns:
      true if the linker can link calls for the receiver type, or false otherwise.