/*
* @(#)Binding.java 1.9 05/11/17
*
* Copyright 2006 Sun Microsystems, Inc. All rights reserved.
* SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
*/
package javax.naming;
/**
* This class represents a name-to-object binding found in a context.
*<p>
* A context consists of name-to-object bindings.
* The Binding class represents such a binding. It consists
* of a name and an object. The <code>Context.listBindings()</code>
* method returns an enumeration of Binding.
*<p>
* Use subclassing for naming systems that generate contents of
* a binding dynamically.
*<p>
* 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.
*
* @author Rosanna Lee
* @author Scott Seligman
* @version 1.9 05/11/17
* @since 1.3
*/
public class Binding extends NameClassPair {
/**
* Contains this binding's object.
* It is initialized by the constuctor and can be updated using
* <tt>setObject</tt>.
* @serial
* @see #getObject
* @see #setObject
*/
private Object boundObj;
/**
* Constructs an instance of a Binding given its name and object.
*<p>
* <tt>getClassName()</tt> will return
* the class name of <tt>obj</tt> (or null if <tt>obj</tt> is null)
* unless the class name has been explicitly set using <tt>setClassName()</tt>
*
* @param name The non-null name of the object. It is relative
* to the <em>target context</em> (which is
* named by the first parameter of the <code>listBindings()</code> method)
* @param obj The possibly null object bound to name.
* @see NameClassPair#setClassName
*/
public Binding(String name, Object obj) {
super(name, null);
this.boundObj = obj;
}
/**
* Constructs an instance of a Binding given its name, object, and whether
* the name is relative.
*<p>
* <tt>getClassName()</tt> will return the class name of <tt>obj</tt>
* (or null if <tt>obj</tt> is null) unless the class name has been
* explicitly set using <tt>setClassName()</tt>
*
* @param name The non-null string name of the object.
* @param obj The possibly null object bound to name.
* @param isRelative true if <code>name</code> is a name relative
* to the target context (which is named by
* the first parameter of the <code>listBindings()</code> method);
* false if <code>name</code> is a URL string.
* @see NameClassPair#isRelative
* @see NameClassPair#setRelative
* @see NameClassPair#setClassName
*/
public Binding(String name, Object obj, boolean isRelative) {
super(name, null, isRelative);
this.boundObj = obj;
}
/**
* Constructs an instance of a Binding given its name, class name, and object.
*
* @param name The non-null name of the object. It is relative
* to the <em>target context</em> (which is
* named by the first parameter of the <code>listBindings()</code> method)
* @param className The possibly null class name of the object
* bound to <tt>name</tt>. If null, the class name of <tt>obj</tt> is
* returned by <tt>getClassName()</tt>. If <tt>obj</tt> is also
* null, <tt>getClassName()</tt> will return null.
* @param obj The possibly null object bound to name.
* @see NameClassPair#setClassName
*/
public Binding(String name, String className, Object obj) {
super(name, className);
this.boundObj = obj;
}
=1= |