# Interface GuardedInvocationTransformer

Functional Interface:
  This is a functional interface and can therefore be used as the assignment target for a lambda expression or method reference.

@FunctionalInterface public interface GuardedInvocationTransformer
Interface for objects that are used to transform one guarded invocation into another one. Typical usage is for implementing `pre-link transformers`.

Since:
  9

- ## Method Summary

  Modifier and Type
  Method
  Description
  `GuardedInvocation`
  `filter(GuardedInvocation inv, LinkRequest linkRequest, LinkerServices linkerServices)`
  Given a guarded invocation, return either the same or potentially different guarded invocation.

- ## Method Details

  - ### filter

    GuardedInvocation filter(GuardedInvocation inv, LinkRequest linkRequest, LinkerServices linkerServices)
    Given a guarded invocation, return either the same or potentially different guarded invocation.
    Parameters:
      `inv` - the original guarded invocation.
      `linkRequest` - the link request for which the invocation was generated (usually by some linker).
      `linkerServices` - the linker services that can be used during creation of a new invocation.
    Returns:
      either the passed guarded invocation or a different one, with the difference usually determined based on information in the link request and the differing invocation created with the assistance of the linker services. Whether or not `null` is an accepted return value is dependent on the user of the filter.
    Throws:
      `NullPointerException` - is allowed to be thrown by implementations if any of the passed arguments is null.