Module jdk.dynalink
Package jdk.dynalink

## Class SecureLookupSupplier

- java.lang.Object
- - jdk.dynalink.SecureLookupSupplier

- Direct Known Subclasses:
    `CallSiteDescriptor`

      public class SecureLookupSupplier
      extends Object

  Provides security-checked access to a `MethodHandles.Lookup` object. See `getLookup()` for details.

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static String` | `GET_LOOKUP_PERMISSION_NAME` | The name of a runtime permission required to successfully invoke the `getLookup()` method.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SecureLookupSupplier​(MethodHandles.Lookup lookup)` | Creates a new secure lookup supplier, securing the passed lookup.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `MethodHandles.Lookup` | `getLookup()` | Returns the lookup secured by this `SecureLookupSupplier`.
    `protected MethodHandles.Lookup` | `getLookupPrivileged()` | Returns the value of `getLookup()` without a security check.

    - ### Methods declared in class java.lang.Object

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

- - ### Field Detail

    - #### GET_LOOKUP_PERMISSION_NAME

          public static final String GET_LOOKUP_PERMISSION_NAME

      The name of a runtime permission required to successfully invoke the `getLookup()` method.
      See Also:
        Constant Field Values

  - ### Constructor Detail

    - #### SecureLookupSupplier

          public SecureLookupSupplier​(MethodHandles.Lookup lookup)

      Creates a new secure lookup supplier, securing the passed lookup.
      Parameters:
        `lookup` - the lookup to secure. Can not be null.
      Throws:
        `NullPointerException` - if null is passed.

  - ### Method Detail

    - #### getLookup

          public final MethodHandles.Lookup getLookup()

      Returns the lookup secured by this `SecureLookupSupplier`.
      Returns:
        the lookup secured by this `SecureLookupSupplier`.
      Throws:
        `SecurityException` - if the secured lookup isn't the `MethodHandles.publicLookup()`, and a security manager is present, and a check for `RuntimePermission("dynalink.getLookup")` fails.

    - #### getLookupPrivileged

          protected final MethodHandles.Lookup getLookupPrivileged()

      Returns the value of `getLookup()` without a security check. Can be used by subclasses to access the lookup quickly.
      Returns:
        same as returned value of `getLookup()`.