# Class ContextBindings

java.lang.Object
org.apache.naming.ContextBindings

public class ContextBindings extends Object
Handles the associations :

- Object with a NamingContext
- Calling thread with a NamingContext
- Calling thread with object bound to the same naming context
- Thread context class loader with a NamingContext
- Thread context class loader with object bound to the same NamingContext

The objects are typically Catalina Server or Context objects.

Author:
  Remy Maucherat

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected static final StringManager`
  `sm`
  The string manager for this package.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `ContextBindings()`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static void`
  `bindClassLoader(Object obj, Object token, ClassLoader classLoader)`
  Binds a naming context to a class loader.
  `static void`
  `bindContext(Object obj, Context context)`
  Binds an object and a naming context.
  `static void`
  `bindContext(Object obj, Context context, Object token)`
  Binds an object and a naming context.
  `static void`
  `bindThread(Object obj, Object token)`
  Binds a naming context to a thread.
  `static Context`
  `getClassLoader()`
  Retrieves the naming context bound to a class loader.
  `static Context`
  `getThread()`
  Retrieves the naming context bound to the current thread.
  `static boolean`
  `isClassLoaderBound()`
  Tests if the thread context class loader is bound to a context.
  `static boolean`
  `isThreadBound()`
  Tests if current thread is bound to a naming context.
  `static void`
  `unbindClassLoader(Object obj, Object token, ClassLoader classLoader)`
  Unbinds a naming context and a class loader.
  `static void`
  `unbindContext(Object obj, Object token)`
  Unbinds an object and a naming context.
  `static void`
  `unbindThread(Object obj, Object token)`
  Unbinds a thread and a naming context.

  ### Methods inherited from class java.lang.Object

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

- ## Field Details

  - ### sm

    protected static final StringManager sm
    The string manager for this package.

- ## Constructor Details

  - ### ContextBindings

    public ContextBindings()

- ## Method Details

  - ### bindContext

    public static void bindContext(Object obj, Context context)
    Binds an object and a naming context.
    Parameters:
      `obj` - Object to bind with naming context
      `context` - Associated naming context instance

  - ### bindContext

    public static void bindContext(Object obj, Context context, Object token)
    Binds an object and a naming context.
    Parameters:
      `obj` - Object to bind with naming context
      `context` - Associated naming context instance
      `token` - Security token

  - ### unbindContext

    public static void unbindContext(Object obj, Object token)
    Unbinds an object and a naming context.
    Parameters:
      `obj` - Object to unbind
      `token` - Security token

  - ### bindThread

    public static void bindThread(Object obj, Object token) throws NamingException
    Binds a naming context to a thread.
    Parameters:
      `obj` - Object bound to the required naming context
      `token` - Security token
    Throws:
      `NamingException` - If no naming context is bound to the provided object

  - ### unbindThread

    public static void unbindThread(Object obj, Object token)
    Unbinds a thread and a naming context.
    Parameters:
      `obj` - Object bound to the required naming context
      `token` - Security token

  - ### getThread

    public static Context getThread() throws NamingException
    Retrieves the naming context bound to the current thread.
    Returns:
      The naming context bound to the current thread.
    Throws:
      `NamingException` - If no naming context is bound to the current thread

  - ### isThreadBound

    public static boolean isThreadBound()
    Tests if current thread is bound to a naming context.
    Returns:
      `true` if the current thread is bound to a naming context, otherwise `false`

  - ### bindClassLoader

    public static void bindClassLoader(Object obj, Object token, ClassLoader classLoader) throws NamingException
    Binds a naming context to a class loader.
    Parameters:
      `obj` - Object bound to the required naming context
      `token` - Security token
      `classLoader` - The class loader to bind to the naming context
    Throws:
      `NamingException` - If no naming context is bound to the provided object

  - ### unbindClassLoader

    public static void unbindClassLoader(Object obj, Object token, ClassLoader classLoader)
    Unbinds a naming context and a class loader.
    Parameters:
      `obj` - Object bound to the required naming context
      `token` - Security token
      `classLoader` - The class loader bound to the naming context

  - ### getClassLoader

    public static Context getClassLoader() throws NamingException
    Retrieves the naming context bound to a class loader.
    Returns:
      the naming context bound to current class loader or one of its parents
    Throws:
      `NamingException` - If no naming context was bound

  - ### isClassLoaderBound

    public static boolean isClassLoaderBound()
    Tests if the thread context class loader is bound to a context.
    Returns:
      `true` if the thread context class loader or one of its parents is bound to a naming context, otherwise `false`