Module jdk.dynalink

Class CompositeGuardingDynamicLinker

java.lang.Object
jdk.dynalink.linker.support.CompositeGuardingDynamicLinker
All Implemented Interfaces:
GuardingDynamicLinker

public class CompositeGuardingDynamicLinker
extends Object
implements GuardingDynamicLinker
A GuardingDynamicLinker that delegates sequentially to a list of other guarding dynamic linkers in its getGuardedInvocation(LinkRequest, LinkerServices).
  • Constructor Details

    • CompositeGuardingDynamicLinker

      public CompositeGuardingDynamicLinker​(Iterable<? extends GuardingDynamicLinker> linkers)
      Creates a new composite linker.
      Parameters:
      linkers - a list of component linkers.
      Throws:
      NullPointerException - if linkers or any of its elements are null.
  • Method Details

    • getGuardedInvocation

      public GuardedInvocation getGuardedInvocation​(LinkRequest linkRequest, LinkerServices linkerServices) throws Exception
      Delegates the call to its component linkers. The first non-null value returned from a component linker is returned. If no component linker returns a non-null invocation, null is returned.
      Specified by:
      getGuardedInvocation in interface GuardingDynamicLinker
      Parameters:
      linkRequest - the object describing the request for linking a particular invocation
      linkerServices - linker services
      Returns:
      the first non-null return value from a component linker, or null if none of the components returned a non-null.
      Throws:
      Exception - if the operation fails for whatever reason