# Class SecureLookupSupplier

java.lang.Object
jdk.dynalink.SecureLookupSupplier

Direct Known Subclasses:
  `CallSiteDescriptor`

public class SecureLookupSupplier extends Object
Encapsulates a `MethodHandles.Lookup` object.

API Note:
  SecureLookupSupplier provided a way in older JDK releases to guard access to a `MethodHandles.Lookup` object when running with a security manager set.
Since:
  9

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final 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 for the given lookup.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final MethodHandles.Lookup`
  `getLookup()`
  Returns the lookup secured by this `SecureLookupSupplier`.
  `protected final MethodHandles.Lookup`
  `getLookupPrivileged()`
  Returns the lookup secured by this `SecureLookupSupplier`.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Field Details

  - ### 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 Details

  - ### SecureLookupSupplier

    public SecureLookupSupplier(MethodHandles.Lookup lookup)
    Creates a new secure lookup supplier for the given lookup.
    Parameters:
      `lookup` - the lookup to secure. Can not be null.
    Throws:
      `NullPointerException` - if null is passed.

- ## Method Details

  - ### getLookup

    public final MethodHandles.Lookup getLookup()
    Returns the lookup secured by this `SecureLookupSupplier`.
    Returns:
      the lookup secured by this `SecureLookupSupplier`.

  - ### getLookupPrivileged

    protected final MethodHandles.Lookup getLookupPrivileged()
    Returns the lookup secured by this `SecureLookupSupplier`.
    Returns:
      same as returned value of `getLookup()`.