InitialDirContext (Java SE 14 & JDK 14)
Description: declaration: module: java.naming, package: javax.naming.directory, class: InitialDirContext
Keywords: javax.naming.directory.InitialDirContext class

Module java.naming
Package javax.naming.directory

# Class InitialDirContext

java.lang.Object
javax.naming.InitialContext
javax.naming.directory.InitialDirContext

All Implemented Interfaces:
  `Context`, `DirContext`

Direct Known Subclasses:
  `InitialLdapContext`

    public class InitialDirContext
    extends InitialContext
    implements DirContext

This class is the starting context for performing directory operations. The documentation in the class description of InitialContext (including those for synchronization) apply here.

Since:
  1.3
See Also:
  `InitialContext`

- ## Field Summary

  ### Fields declared in class javax.naming.InitialContext

  `defaultInitCtx, gotDefault, myProps`

  ### Fields declared in interface javax.naming.Context

  `APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES`

  ### Fields declared in interface javax.naming.directory.DirContext

  `ADD_ATTRIBUTE, REMOVE_ATTRIBUTE, REPLACE_ATTRIBUTE`

- ## Constructor Summary

  Constructors
  Modifier | Constructor | Description
  --- | --- | ---
  `` | `InitialDirContext()` | Constructs an initial DirContext.
  `protected` | `InitialDirContext​(boolean lazy)` | Constructs an initial DirContext with the option of not initializing it.
  `` | `InitialDirContext​(Hashtable<?,​?> environment)` | Constructs an initial DirContext using the supplied environment.

- ## Method Summary

  ### Methods declared in class javax.naming.InitialContext

  `composeName, composeName, doLookup, doLookup, getDefaultInitCtx, getURLOrDefaultInitCtx, getURLOrDefaultInitCtx, init`

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

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

  ### Methods declared in interface javax.naming.Context

  `addToEnvironment, bind, bind, close, composeName, composeName, createSubcontext, createSubcontext, destroySubcontext, destroySubcontext, getEnvironment, getNameInNamespace, getNameParser, getNameParser, list, list, listBindings, listBindings, lookup, lookup, lookupLink, lookupLink, rebind, rebind, removeFromEnvironment, rename, rename, unbind, unbind`

  ### Methods declared in interface javax.naming.directory.DirContext

  `bind, bind, createSubcontext, createSubcontext, getAttributes, getAttributes, getAttributes, getAttributes, getSchema, getSchema, getSchemaClassDefinition, getSchemaClassDefinition, modifyAttributes, modifyAttributes, modifyAttributes, modifyAttributes, rebind, rebind, search, search, search, search, search, search, search, search`

- ## Constructor Details

  - ### InitialDirContext

    protected InitialDirContext​(boolean lazy) throws NamingException
    Constructs an initial DirContext with the option of not initializing it. This may be used by a constructor in a subclass when the value of the environment parameter is not yet known at the time the `InitialDirContext` constructor is called. The subclass's constructor will call this constructor, compute the value of the environment, and then call `init()` before returning.
    Parameters:
      `lazy` - true means do not initialize the initial DirContext; false is equivalent to calling `new InitialDirContext()`
    Throws:
      `NamingException` - if a naming exception is encountered
    Since:
      1.3
    See Also:
      `InitialContext.init(Hashtable)`

  - ### InitialDirContext

    public InitialDirContext() throws NamingException
    Constructs an initial DirContext. No environment properties are supplied. Equivalent to `new InitialDirContext(null)`.
    Throws:
      `NamingException` - if a naming exception is encountered
    See Also:
      `InitialDirContext(Hashtable)`

  - ### InitialDirContext

    public InitialDirContext​(Hashtable<?,​?> environment) throws NamingException
    Constructs an initial DirContext using the supplied environment. Environment properties are discussed in the `javax.naming.InitialContext` class description.

    If the `java.naming.provider.url` property of the supplied environment consists of a URL (or a list of URLs) using the ldap protocol the resulting `LdapContext` will use an LDAP server resolved by the configured `LdapDnsProviders`:

    1. If this is the first `InitialDirContext` created with a `java.naming.provider.url` using the ldap protocol then the ServiceLoader mechanism is used to locate LdapDnsProvider implementations using the system class loader. The order that providers are located is implementation specific and an implementation is free to cache the located providers.
    2. The `lookupEndpoints` method of each provider, if instantiated, is invoked once with a combination of each of the URLs in the the `java.naming.provider.url` property and the environment until a provider returns non-empty or all providers have been exhausted. If none of the LdapDnsProviders return a non-empty result then the implementation will make a best-effort attempt to determine an endpoint. A ServiceConfigurationError, `Error` or `RuntimeException` thrown when loading or calling an LdapDnsProvider, if encountered, will be propagated to the calling thread.

    This constructor will not modify `environment` or save a reference to it, but may save a clone. Caller should not modify mutable keys and values in `environment` after it has been passed to the constructor.

    Parameters:
      `environment` - environment used to create the initial DirContext. Null indicates an empty environment.
    Throws:
      `NamingException` - if a naming exception is encountered