Class 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).

Constructors

Constructor Description
CompositeGuardingDynamicLinker​(Iterable<? extends GuardingDynamicLinker> linkers)

Creates a new composite linker.

Methods

Modifier and Type Method Description
GuardedInvocation getGuardedInvocation​(LinkRequest linkRequest, LinkerServices linkerServices)

Delegates the call to its component linkers.

Methods declared in class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructors

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.

Methods

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