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

# Class NameClassPair

java.lang.Object
javax.naming.NameClassPair

All Implemented Interfaces:
  `Serializable`

Direct Known Subclasses:
  `Binding`

public class NameClassPair extends Object implements Serializable
This class represents the object name and class name pair of a binding found in a context.

A context consists of name-to-object bindings. The NameClassPair class represents the name and the class of the bound object. It consists of a name and a string representing the package-qualified class name.

Use subclassing for naming systems that generate contents of a name/class pair dynamically.

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

Since:
  1.3
See Also:
  - `Context.list(Name)`
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `NameClassPair(String name, String className)`
  Constructs an instance of a NameClassPair given its name and class name.
  `NameClassPair(String name, String className, boolean isRelative)`
  Constructs an instance of a NameClassPair given its name, class name, and whether it is relative to the listing context.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `String`
  `getClassName()`
  Retrieves the class name of the object bound to the name of this binding.
  `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).
  `String`
  `toString()`
  Generates the string representation of this name/class pair.

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

  - ### NameClassPair

    public NameClassPair(String name, String className)
    Constructs an instance of a NameClassPair given its name and class name.
    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 `list()` method)
      `className` - The possibly null class name of the object bound to name. It is null if the object bound is null.
    See Also:
      - `getClassName()`
      - `setClassName(String)`
      - `getName()`
      - `setName(String)`

  - ### NameClassPair

    public NameClassPair(String name, String className, boolean isRelative)
    Constructs an instance of a NameClassPair given its name, class name, and whether it is relative to the listing context.
    Parameters:
      `name` - The non-null name of the object.
      `className` - The possibly null class name of the object bound to name. It is null if the object bound is null.
      `isRelative` - true if `name` is a name relative to the target context (which is named by the first parameter of the `list()` method); false if `name` is a URL string.
    See Also:
      - `getClassName()`
      - `setClassName(String)`
      - `getName()`
      - `setName(String)`
      - `isRelative()`
      - `setRelative(boolean)`

- ## Method Details

  - ### getClassName

    public String getClassName()
    Retrieves the class name of the object bound to the name of this binding. If a reference or some other indirect information is bound, retrieves the class name of the eventual object that will be returned by `Binding.getObject()`.
    Returns:
      The possibly null class name of object bound. It is null if the object bound is null.
    See Also:
      - `Binding.getObject()`
      - `Binding.getClassName()`
      - `setClassName(String)`

  - ### getName

    public String getName()
    Retrieves the name of this binding. If `isRelative()` is true, this name is relative to the target context (which is named by the first parameter of the `list()`). If `isRelative()` is false, this name is a URL string.
    Returns:
      The non-null name of this binding.
    See Also:
      - `isRelative()`
      - `setName(String)`

  - ### setName

    public void setName(String name)
    Sets the name of this binding.
    Parameters:
      `name` - the non-null string to use as the name.
    See Also:
      - `getName()`
      - `setRelative(boolean)`

  - ### setClassName

    public void setClassName(String name)
    Sets the class name of this binding.
    Parameters:
      `name` - the possibly null string to use as the class name. If null, `Binding.getClassName()` will return the actual class name of the object in the binding. The class name will be null if the object bound is null.
    See Also:
      - `getClassName()`
      - `Binding.getClassName()`

  - ### isRelative

    public 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).
    Returns:
      true if the name of this binding is relative to the target context; false if the name of this binding is a URL string.
    See Also:
      - `setRelative(boolean)`
      - `getName()`

  - ### setRelative

    public 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).
    Parameters:
      `r` - If true, the name of binding is relative to the target context; if false, the name of binding is a URL string.
    See Also:
      - `isRelative()`
      - `setName(String)`

  - ### getNameInNamespace

    public String getNameInNamespace()
    Retrieves the full name of this binding. The full name is the absolute name of this binding within its own namespace. See `Context.getNameInNamespace()`.

    In naming systems for which the notion of full name does not apply to this binding an `UnsupportedOperationException` is thrown. This exception is also thrown when a service provider written before the introduction of the method is in use.

    The string returned by this method is not a JNDI composite name and should not be passed directly to context methods.

    Returns:
      The full name of this binding.
    Throws:
      `UnsupportedOperationException` - if the notion of full name does not apply to this binding in the naming system.
    Since:
      1.5
    See Also:
      - `setNameInNamespace(String)`
      - `getName()`

  - ### setNameInNamespace

    public void setNameInNamespace(String fullName)
    Sets the full name of this binding. This method must be called to set the full name whenever a `NameClassPair` is created and a full name is applicable to this binding.

    Setting the full name to null, or not setting it at all, will cause `getNameInNamespace()` to throw an exception.

    Parameters:
      `fullName` - The full name to use.
    Since:
      1.5
    See Also:
      - `getNameInNamespace()`
      - `setName(String)`

  - ### toString

    public String toString()
    Generates the string representation of this name/class pair. The string representation consists of the name and class name separated by a colon (':'). The contents of this string is useful for debugging and is not meant to be interpreted programmatically.
    Overrides:
      `toString` in class `Object`
    Returns:
      The string representation of this name/class pair.