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

# Class SearchResult

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

All Implemented Interfaces:
  `Serializable`

public class SearchResult extends Binding
This class represents an item in the NamingEnumeration returned as a result of the DirContext.search() methods.

A SearchResult instance is not synchronized against concurrent multithreaded access. Multiple threads trying to access and modify a single SearchResult instance should lock the object.

Since:
  1.3
See Also:
  - `DirContext.search(Name, Attributes, String[])`
  - Serialized Form

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `SearchResult(String name, Object obj, Attributes attrs)`
  Constructs a search result using the result's name, its bound object, and its attributes.
  `SearchResult(String name, Object obj, Attributes attrs, boolean isRelative)`
  Constructs a search result using the result's name, its bound object, and its attributes, and whether the name is relative.
  `SearchResult(String name, String className, Object obj, Attributes attrs)`
  Constructs a search result using the result's name, its class name, its bound object, and its attributes.
  `SearchResult(String name, String className, Object obj, Attributes attrs, boolean isRelative)`
  Constructs a search result using the result's name, its class name, its bound object, its attributes, and whether the name is relative.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Attributes`
  `getAttributes()`
  Retrieves the attributes in this search result.
  `void`
  `setAttributes(Attributes attrs)`
  Sets the attributes of this search result to `attrs`.
  `String`
  `toString()`
  Generates the string representation of this SearchResult.

  ### Methods declared in class Binding

  `getClassName, getObject, setObject`
  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.

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

  - ### SearchResult

    public SearchResult(String name, Object obj, Attributes attrs)
    Constructs a search result using the result's name, its bound object, and its attributes.

    `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 search item. It is relative to the target context of the search (which is named by the first parameter of the `search()` method)
      `obj` - The object bound to name. Can be null.
      `attrs` - The attributes that were requested to be returned with this search item. Cannot be null.
    See Also:
      - `NameClassPair.setClassName(String)`
      - `NameClassPair.getClassName()`

  - ### SearchResult

    public SearchResult(String name, Object obj, Attributes attrs, boolean isRelative)
    Constructs a search result using the result's name, its bound object, and its attributes, 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 name of the search item.
      `obj` - The object bound to name. Can be null.
      `attrs` - The attributes that were requested to be returned with this search item. Cannot be null.
      `isRelative` - true if `name` is relative to the target context of the search (which is named by the first parameter of the `search()` method); false if `name` is a URL string.
    See Also:
      - `NameClassPair.setClassName(String)`
      - `NameClassPair.getClassName()`

  - ### SearchResult

    public SearchResult(String name, String className, Object obj, Attributes attrs)
    Constructs a search result using the result's name, its class name, its bound object, and its attributes.
    Parameters:
      `name` - The non-null name of the search item. It is relative to the target context of the search (which is named by the first parameter of the `search()` 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 object bound to name. Can be null.
      `attrs` - The attributes that were requested to be returned with this search item. Cannot be null.
    See Also:
      - `NameClassPair.setClassName(String)`
      - `NameClassPair.getClassName()`

  - ### SearchResult

    public SearchResult(String name, String className, Object obj, Attributes attrs, boolean isRelative)
    Constructs a search result using the result's name, its class name, its bound object, its attributes, and whether the name is relative.
    Parameters:
      `name` - The non-null name of the search item.
      `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 object bound to name. Can be null.
      `attrs` - The attributes that were requested to be returned with this search item. Cannot be null.
      `isRelative` - true if `name` is relative to the target context of the search (which is named by the first parameter of the `search()` method); false if `name` is a URL string.
    See Also:
      - `NameClassPair.setClassName(String)`
      - `NameClassPair.getClassName()`

- ## Method Details

  - ### getAttributes

    public Attributes getAttributes()
    Retrieves the attributes in this search result.
    Returns:
      The non-null attributes in this search result. Can be empty.
    See Also:
      - `setAttributes(Attributes)`

  - ### setAttributes

    public void setAttributes(Attributes attrs)
    Sets the attributes of this search result to `attrs`.
    Parameters:
      `attrs` - The non-null attributes to use. Can be empty.
    See Also:
      - `getAttributes()`

  - ### toString

    public String toString()
    Generates the string representation of this SearchResult. The string representation consists of the string representation of the binding and the string representation of this search result's attributes, separated by ':'. The contents of this string is useful for debugging and is not meant to be interpreted programmatically.
    Overrides:
      `toString` in class `Binding`
    Returns:
      The string representation of this SearchResult. Cannot be null.