Binding (Java SE 26 & JDK 26)
Description: declaration: module: java.naming, package: javax.naming, class: Binding
Keywords: javax.naming.Binding class

# Class Binding

java.lang.Object
javax.naming.NameClassPair
javax.naming.Binding

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `SearchResult`

public class Binding extends NameClassPair
This class represents a name-to-object binding found in a context.

A context consists of name-to-object bindings. The Binding class represents such a binding. It consists of a name and an object. The `Context.listBindings()` method returns an enumeration of Binding.

Use subclassing for naming systems that generate contents of a binding dynamically.

A Binding instance is not synchronized against concurrent access by multiple threads. Threads that need to access a Binding concurrently should synchronize amongst themselves and provide the necessary locking.

Since:
  1.3
See Also:
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Binding(String name, Object obj)`
  Constructs an instance of a Binding given its name and object.
  `Binding(String name, Object obj, boolean isRelative)`
  Constructs an instance of a Binding given its name, object, and whether the name is relative.
  `Binding(String name, String className, Object obj)`
  Constructs an instance of a Binding given its name, class name, and object.
  `Binding(String name, String className, Object obj, boolean isRelative)`
  Constructs an instance of a Binding given its name, class name, object, and whether the name is relative.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getClassName()`
  Retrieves the class name of the object bound to the name of this binding.
  `Object`
  `getObject()`
  Retrieves the object bound to the name of this binding.
  `void`
  `setObject(Object obj)`
  Sets the object associated with this binding.
  `String`
  `toString()`
  Generates the string representation of this binding.

  ### Methods declared in class NameClassPair

  `getName, getNameInNamespace, isRelative, setClassName, setName, setNameInNamespace, setRelative`
  Modifier and Type
  Method
  Description
  `String`
  `getName()`
  Retrieves the name of this binding.
  `String`
  `getNameInNamespace()`
  Retrieves the full name of this binding.
  `boolean`
  `isRelative()`
  Determines whether the name of this binding is relative to the target context (which is named by the first parameter of the `list()` method).
  `void`
  `setClassName(String name)`
  Sets the class name of this binding.
  `void`
  `setName(String name)`
  Sets the name of this binding.
  `void`
  `setNameInNamespace(String fullName)`
  Sets the full name of this binding.
  `void`
  `setRelative(boolean r)`
  Sets whether the name of this binding is relative to the target context (which is named by the first parameter of the `list()` method).

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, 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.
  `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.

- ## Constructor Details

  - ### Binding

    public Binding(String name, Object obj)
    Constructs an instance of a Binding given its name and object.

    `getClassName()` will return the class name of `obj` (or null if `obj` is null) unless the class name has been explicitly set using `setClassName()`

    Parameters:
      `name` - The non-null name of the object. It is relative to the target context (which is named by the first parameter of the `listBindings()` method)
      `obj` - The possibly null object bound to name.
    See Also:
      - `NameClassPair.setClassName(String)`

  - ### Binding

    public Binding(String name, Object obj, boolean isRelative)
    Constructs an instance of a Binding given its name, object, and whether the name is relative.

    `getClassName()` will return the class name of `obj` (or null if `obj` is null) unless the class name has been explicitly set using `setClassName()`

    Parameters:
      `name` - The non-null string name of the object.
      `obj` - The possibly null object bound to name.
      `isRelative` - true if `name` is a name relative to the target context (which is named by the first parameter of the `listBindings()` method); false if `name` is a URL string.
    See Also:
      - `NameClassPair.isRelative()`
      - `NameClassPair.setRelative(boolean)`
      - `NameClassPair.setClassName(String)`

  - ### Binding

    public Binding(String name, String className, Object obj)
    Constructs an instance of a Binding given its name, class name, and object.
    Parameters:
      `name` - The non-null name of the object. It is relative to the target context (which is named by the first parameter of the `listBindings()` method)
      `className` - The possibly null class name of the object bound to `name`. If null, the class name of `obj` is returned by `getClassName()`. If `obj` is also null, `getClassName()` will return null.
      `obj` - The possibly null object bound to name.
    See Also:
      - `NameClassPair.setClassName(String)`

  - ### Binding

    public Binding(String name, String className, Object obj, boolean isRelative)
    Constructs an instance of a Binding given its name, class name, object, and whether the name is relative.
    Parameters:
      `name` - The non-null string name of the object.
      `className` - The possibly null class name of the object bound to `name`. If null, the class name of `obj` is returned by `getClassName()`. If `obj` is also null, `getClassName()` will return null.
      `obj` - The possibly null object bound to name.
      `isRelative` - true if `name` is a name relative to the target context (which is named by the first parameter of the `listBindings()` method); false if `name` is a URL string.
    See Also:
      - `NameClassPair.isRelative()`
      - `NameClassPair.setRelative(boolean)`
      - `NameClassPair.setClassName(String)`

- ## Method Details

  - ### getClassName

    public String getClassName()
    Retrieves the class name of the object bound to the name of this binding. If the class name has been set explicitly, return it. Otherwise, if this binding contains a non-null object, that object's class name is used. Otherwise, null is returned.
    Overrides:
      `getClassName` in class `NameClassPair`
    Returns:
      A possibly null string containing class name of object bound.
    See Also:
      - `getObject()`
      - `getClassName()`
      - `NameClassPair.setClassName(String)`

  - ### getObject

    public Object getObject()
    Retrieves the object bound to the name of this binding.
    Returns:
      The object bound; null if this binding does not contain an object.
    See Also:
      - `setObject(Object)`

  - ### setObject

    public void setObject(Object obj)
    Sets the object associated with this binding.
    Parameters:
      `obj` - The possibly null object to use.
    See Also:
      - `getObject()`

  - ### toString

    public String toString()
    Generates the string representation of this binding. The string representation consists of the string representation of the name/class pair and the string representation of this binding's object, separated by ':'. The contents of this string is useful for debugging and is not meant to be interpreted programmatically.
    Overrides:
      `toString` in class `NameClassPair`
    Returns:
      The non-null string representation of this binding.