Resolver (Java SE 12 & JDK 12 )
Keywords: javax.naming.spi.Resolver interface

Module java.naming
Package javax.naming.spi

## Interface Resolver

-     public interface Resolver

  This interface represents an "intermediate context" for name resolution.

  The Resolver interface contains methods that are implemented by contexts that do not support subtypes of Context, but which can act as intermediate contexts for resolution purposes.

  A `Name` parameter passed to any method is owned by the caller. The service provider will not modify the object or keep a reference to it. A `ResolveResult` object returned by any method is owned by the caller. The caller may subsequently modify it; the service provider may not.

  Since:
    1.3

- - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `ResolveResult` | `resolveToClass​(String name, Class<? extends Context> contextType)` | Partially resolves a name.
    `ResolveResult` | `resolveToClass​(Name name, Class<? extends Context> contextType)` | Partially resolves a name.

- - ### Method Detail

    - #### resolveToClass

          ResolveResult resolveToClass​(Name name,
                                       Class<? extends Context> contextType)
                                throws NamingException

      Partially resolves a name. Stops at the first context that is an instance of a given subtype of `Context`.
      Parameters:
        `name` - the name to resolve
        `contextType` - the type of object to resolve. This should be a subtype of `Context`.
      Returns:
        the object that was found, along with the unresolved suffix of `name`. Cannot be null.
      Throws:
        `NotContextException` - if no context of the appropriate type is found
        `NamingException` - if a naming exception was encountered
      See Also:
        `resolveToClass(String, Class)`

    - #### resolveToClass

          ResolveResult resolveToClass​(String name,
                                       Class<? extends Context> contextType)
                                throws NamingException

      Partially resolves a name. See `resolveToClass(Name, Class)` for details.
      Parameters:
        `name` - the name to resolve
        `contextType` - the type of object to resolve. This should be a subtype of `Context`.
      Returns:
        the object that was found, along with the unresolved suffix of `name`. Cannot be null.
      Throws:
        `NotContextException` - if no context of the appropriate type is found
        `NamingException` - if a naming exception was encountered