- java.lang.Object
- jdk.dynalink.linker.support.CompositeGuardingDynamicLinker
- All Implemented Interfaces:
GuardingDynamicLinker
public class CompositeGuardingDynamicLinker extends Object implements GuardingDynamicLinker
AGuardingDynamicLinker
that delegates sequentially to a list of other guarding dynamic linkers in itsgetGuardedInvocation(LinkRequest, LinkerServices)
.
Constructor Summary
Constructors Constructor Description CompositeGuardingDynamicLinker(Iterable<? extends GuardingDynamicLinker> linkers)
Creates a new composite linker.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description GuardedInvocation
getGuardedInvocation(LinkRequest linkRequest, LinkerServices linkerServices)
Delegates the call to its component linkers.
Constructor Detail
CompositeGuardingDynamicLinker
public CompositeGuardingDynamicLinker(Iterable<? extends GuardingDynamicLinker> linkers)
Creates a new composite linker.- Parameters:
linkers
- a list of component linkers.- Throws:
NullPointerException
- iflinkers
or any of its elements are null.
Method Detail
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 interfaceGuardingDynamicLinker
- Parameters:
linkRequest
- the object describing the request for linking a particular invocationlinkerServices
- 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