org.eclipse.jetty.jndi

## Class NamingContext

- java.lang.Object
- - org.eclipse.jetty.jndi.NamingContext

All Implemented Interfaces:
  Cloneable, Context, Dumpable

    public class NamingContext
    extends Object
    implements Context, Cloneable, Dumpable

NamingContext

Implementation of Context interface.

#### Notes

All Names are expected to be Compound, not Composite.

### Nested Class Summary

Nested Classes
`static interface` `NamingContext.Listener` Naming Context Listener.

### Field Summary

Fields
`protected Map<String,Binding>` `_bindings`
`protected Hashtable<String,Object>` `_env`
`protected String` `_name`
`protected NamingContext` `_parent`
`protected NameParser` `_parser`
`static String` `LOCK_PROPERTY`
`static String` `UNLOCK_PROPERTY`

### Fields inherited from interface javax.naming.Context

`APPLET, AUTHORITATIVE, BATCHSIZE, DNS_URL, INITIAL_CONTEXT_FACTORY, LANGUAGE, OBJECT_FACTORIES, PROVIDER_URL, REFERRAL, SECURITY_AUTHENTICATION, SECURITY_CREDENTIALS, SECURITY_PRINCIPAL, SECURITY_PROTOCOL, STATE_FACTORIES, URL_PKG_PREFIXES`

### Constructor Summary

Constructors
Constructor and Description
`NamingContext(Hashtable<String,Object> env, String name, NamingContext parent, NameParser parser)` Constructor

### Method Summary

Methods
`void` `addBinding(Name name, Object obj)` Add a name to object binding to this Context.
`void` `addListener(NamingContext.Listener listener)`
`Object` `addToEnvironment(String propName, Object propVal)` Add an environment setting to this Context
`void` `bind(Name name, Object obj)` Bind a name to an object
`void` `bind(String name, Object obj)` Bind a name (as a String) to an object
`Object` `clone()` Clone this NamingContext
`void` `close()` Do nothing
`Name` `composeName(Name name, Name prefix)` Join two names together.
`String` `composeName(String name, String prefix)` Join two names together.
`Context` `createSubcontext(Name name)` Create a context as a child of this one
`Context` `createSubcontext(String name)` Create a Context as a child of this one
`void` `destroySubcontext(Name name)`
`void` `destroySubcontext(String name)`
`String` `dump()`
`void` `dump(Appendable out, String indent)`
`Binding` `getBinding(Name name)` Get a name to object binding from this Context
`Binding` `getBinding(String name)` Get a name to object binding from this Context
`Map<String,Binding>` `getBindings()`
`Hashtable` `getEnvironment()` Get the environment of this Context.
`String` `getName()` Getter for _name
`String` `getNameInNamespace()` Get the full name of this Context node by visiting it's ancestors back to root.
`NameParser` `getNameParser(Name name)` Return a NameParser for this Context.
`NameParser` `getNameParser(String name)` Return a NameParser for this Context.
`Context` `getParent()` Getter for _parent
`boolean` `isLocked()`
`NamingEnumeration` `list(Name name)` List all names bound at Context named by Name
`NamingEnumeration` `list(String name)` List all names bound at Context named by Name
`NamingEnumeration` `listBindings(Name name)` List all Bindings present at Context named by Name
`NamingEnumeration` `listBindings(String name)` List all Bindings at Name
`Object` `lookup(Name name)` Lookup a binding by name
`Object` `lookup(String name)` Lookup binding of an object by name
`Object` `lookupLink(Name name)` Lookup link bound to name
`Object` `lookupLink(String name)` Lookup link bound to name
`void` `rebind(Name name, Object obj)` Overwrite or create a binding
`void` `rebind(String name, Object obj)` Overwrite or create a binding from Name to Object
`void` `removeBinding(Name name)`
`Object` `removeFromEnvironment(String propName)` Remove a property from this Context's environment.
`boolean` `removeListener(NamingContext.Listener listener)`
`void` `rename(Name oldName, Name newName)` Not supported
`void` `rename(String oldName, String newName)` Not supported
`void` `setBindings(Map<String,Binding> bindings)`
`void` `setEnv(Hashtable<String,Object> env)`
`void` `setNameParser(NameParser parser)` Setter for _parser
`Name` `toCanonicalName(Name name)` Remove leading or trailing empty components from name.
`void` `unbind(Name name)` Not supported.
`void` `unbind(String name)` Not supported.

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

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

### Field Detail

#### LOCK_PROPERTY

    public static final String LOCK_PROPERTY

See Also:
  Constant Field Values

#### UNLOCK_PROPERTY

    public static final String UNLOCK_PROPERTY

See Also:
  Constant Field Values

#### _env

    protected final Hashtable<String,Object> _env

#### _bindings

    protected Map<String,Binding> _bindings

#### _parent

    protected NamingContext _parent

#### _name

    protected String _name

#### _parser

    protected NameParser _parser

### Constructor Detail

#### NamingContext

    public NamingContext(Hashtable<String,Object> env,
                 String name,
                 NamingContext parent,
                 NameParser parser)

Constructor

Parameters:
  `env` - environment properties
  `name` - relative name of this context
  `parent` - immediate ancestor Context (can be null)
  `parser` - NameParser for this Context

### Method Detail

#### clone

    public Object clone()
                 throws CloneNotSupportedException

Clone this NamingContext

Overrides:
  `clone` in class `Object`
Returns:
  copy of this NamingContext
Throws:
  `CloneNotSupportedException` - if an error occurs

#### getName

    public String getName()

Getter for _name

Returns:
  name of this Context (relative, not absolute)

#### getParent

    public Context getParent()

Getter for _parent

Returns:
  parent Context

#### setNameParser

    public void setNameParser(NameParser parser)

Setter for _parser

#### setEnv

    public void setEnv(Hashtable<String,Object> env)

#### getBindings

    public Map<String,Binding> getBindings()

#### setBindings

    public void setBindings(Map<String,Binding> bindings)

#### bind

    public void bind(Name name,
            Object obj)
              throws NamingException

Bind a name to an object

Specified by:
  `bind` in interface `Context`
Parameters:
  `name` - Name of the object
  `obj` - object to bind
Throws:
  `NamingException` - if an error occurs

#### bind

    public void bind(String name,
            Object obj)
              throws NamingException

Bind a name (as a String) to an object

Specified by:
  `bind` in interface `Context`
Parameters:
  `name` - a `String` value
  `obj` - an `Object` value
Throws:
  `NamingException` - if an error occurs

#### createSubcontext

    public Context createSubcontext(Name name)
                             throws NamingException

Create a context as a child of this one

Specified by:
  `createSubcontext` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `Context` value
Throws:
  `NamingException` - if an error occurs

#### createSubcontext

    public Context createSubcontext(String name)
                             throws NamingException

Create a Context as a child of this one

Specified by:
  `createSubcontext` in interface `Context`
Parameters:
  `name` - a `String` value
Returns:
  a `Context` value
Throws:
  `NamingException` - if an error occurs

#### destroySubcontext

    public void destroySubcontext(String name)
                           throws NamingException

Specified by:
  `destroySubcontext` in interface `Context`
Parameters:
  `name` - name of subcontext to remove
Throws:
  `NamingException` - if an error occurs

#### destroySubcontext

    public void destroySubcontext(Name name)
                           throws NamingException

Specified by:
  `destroySubcontext` in interface `Context`
Parameters:
  `name` - name of subcontext to remove
Throws:
  `NamingException` - if an error occurs

#### lookup

    public Object lookup(Name name)
                  throws NamingException

Lookup a binding by name

Specified by:
  `lookup` in interface `Context`
Parameters:
  `name` - name of bound object
Throws:
  `NamingException` - if an error occurs

#### lookup

    public Object lookup(String name)
                  throws NamingException

Lookup binding of an object by name

Specified by:
  `lookup` in interface `Context`
Parameters:
  `name` - name of bound object
Returns:
  object bound to name
Throws:
  `NamingException` - if an error occurs

#### lookupLink

    public Object lookupLink(Name name)
                      throws NamingException

Lookup link bound to name

Specified by:
  `lookupLink` in interface `Context`
Parameters:
  `name` - name of link binding
Returns:
  LinkRef or plain object bound at name
Throws:
  `NamingException` - if an error occurs

#### lookupLink

    public Object lookupLink(String name)
                      throws NamingException

Lookup link bound to name

Specified by:
  `lookupLink` in interface `Context`
Parameters:
  `name` - name of link binding
Returns:
  LinkRef or plain object bound at name
Throws:
  `NamingException` - if an error occurs

#### list

    public NamingEnumeration list(Name name)
                           throws NamingException

List all names bound at Context named by Name

Specified by:
  `list` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `NamingEnumeration` value
Throws:
  `NamingException` - if an error occurs

#### list

    public NamingEnumeration list(String name)
                           throws NamingException

List all names bound at Context named by Name

Specified by:
  `list` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `NamingEnumeration` value
Throws:
  `NamingException` - if an error occurs

#### listBindings

    public NamingEnumeration listBindings(Name name)
                                   throws NamingException

List all Bindings present at Context named by Name

Specified by:
  `listBindings` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `NamingEnumeration` value
Throws:
  `NamingException` - if an error occurs

#### listBindings

    public NamingEnumeration listBindings(String name)
                                   throws NamingException

List all Bindings at Name

Specified by:
  `listBindings` in interface `Context`
Parameters:
  `name` - a `String` value
Returns:
  a `NamingEnumeration` value
Throws:
  `NamingException` - if an error occurs

#### rebind

    public void rebind(Name name,
              Object obj)
                throws NamingException

Overwrite or create a binding

Specified by:
  `rebind` in interface `Context`
Parameters:
  `name` - a `Name` value
  `obj` - an `Object` value
Throws:
  `NamingException` - if an error occurs

#### rebind

    public void rebind(String name,
              Object obj)
                throws NamingException

Overwrite or create a binding from Name to Object

Specified by:
  `rebind` in interface `Context`
Parameters:
  `name` - a `String` value
  `obj` - an `Object` value
Throws:
  `NamingException` - if an error occurs

#### unbind

    public void unbind(String name)
                throws NamingException

Not supported.

Specified by:
  `unbind` in interface `Context`
Parameters:
  `name` - a `String` value
Throws:
  `NamingException` - if an error occurs

#### unbind

    public void unbind(Name name)
                throws NamingException

Not supported.

Specified by:
  `unbind` in interface `Context`
Parameters:
  `name` - a `String` value
Throws:
  `NamingException` - if an error occurs

#### rename

    public void rename(Name oldName,
              Name newName)
                throws NamingException

Not supported

Specified by:
  `rename` in interface `Context`
Parameters:
  `oldName` - a `Name` value
  `newName` - a `Name` value
Throws:
  `NamingException` - if an error occurs

#### rename

    public void rename(String oldName,
              String newName)
                throws NamingException

Not supported

Specified by:
  `rename` in interface `Context`
Parameters:
  `oldName` - a `Name` value
  `newName` - a `Name` value
Throws:
  `NamingException` - if an error occurs

#### composeName

    public Name composeName(Name name,
                   Name prefix)
                     throws NamingException

Join two names together. These are treated as CompoundNames.

Specified by:
  `composeName` in interface `Context`
Parameters:
  `name` - a `Name` value
  `prefix` - a `Name` value
Returns:
  a `Name` value
Throws:
  `NamingException` - if an error occurs

#### composeName

    public String composeName(String name,
                     String prefix)
                       throws NamingException

Join two names together. These are treated as CompoundNames.

Specified by:
  `composeName` in interface `Context`
Parameters:
  `name` - a `Name` value
  `prefix` - a `Name` value
Returns:
  a `Name` value
Throws:
  `NamingException` - if an error occurs

#### close

    public void close()
               throws NamingException

Do nothing

Specified by:
  `close` in interface `Context`
Throws:
  `NamingException` - if an error occurs

#### getNameParser

    public NameParser getNameParser(Name name)

Return a NameParser for this Context.

Specified by:
  `getNameParser` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `NameParser` value

#### getNameParser

    public NameParser getNameParser(String name)

Return a NameParser for this Context.

Specified by:
  `getNameParser` in interface `Context`
Parameters:
  `name` - a `Name` value
Returns:
  a `NameParser` value

#### getNameInNamespace

    public String getNameInNamespace()
                              throws NamingException

Get the full name of this Context node by visiting it's ancestors back to root. NOTE: if this Context has a URL namespace then the URL prefix will be missing

Specified by:
  `getNameInNamespace` in interface `Context`
Returns:
  the full name of this Context
Throws:
  `NamingException` - if an error occurs

#### addToEnvironment

    public Object addToEnvironment(String propName,
                          Object propVal)
                            throws NamingException

Add an environment setting to this Context

Specified by:
  `addToEnvironment` in interface `Context`
Parameters:
  `propName` - name of the property to add
  `propVal` - value of the property to add
Returns:
  propVal or previous value of the property
Throws:
  `NamingException` - if an error occurs

#### removeFromEnvironment

    public Object removeFromEnvironment(String propName)
                                 throws NamingException

Remove a property from this Context's environment.

Specified by:
  `removeFromEnvironment` in interface `Context`
Parameters:
  `propName` - name of property to remove
Returns:
  value of property or null if it didn't exist
Throws:
  `NamingException` - if an error occurs

#### getEnvironment

    public Hashtable getEnvironment()

Get the environment of this Context.

Specified by:
  `getEnvironment` in interface `Context`
Returns:
  a copy of the environment of this Context.

#### addBinding

    public void addBinding(Name name,
                  Object obj)
                    throws NameAlreadyBoundException

Add a name to object binding to this Context.

Parameters:
  `name` - a `Name` value
  `obj` - an `Object` value
Throws:
  `NameAlreadyBoundException`

#### getBinding

    public Binding getBinding(Name name)

Get a name to object binding from this Context

Parameters:
  `name` - a `Name` value
Returns:
  a `Binding` value

#### getBinding

    public Binding getBinding(String name)

Get a name to object binding from this Context

Parameters:
  `name` - as a String
Returns:
  null or the Binding

#### removeBinding

    public void removeBinding(Name name)

#### toCanonicalName

    public Name toCanonicalName(Name name)

Remove leading or trailing empty components from name. Eg "/comp/env/" -> "comp/env"

Parameters:
  `name` - the name to normalize
Returns:
  normalized name

#### isLocked

    public boolean isLocked()

#### dump

    public String dump()

Specified by:
  `dump` in interface `Dumpable`

#### dump

    public void dump(Appendable out,
            String indent)
              throws IOException

Specified by:
  `dump` in interface `Dumpable`
Throws:
  `IOException`

#### addListener

    public void addListener(NamingContext.Listener listener)

#### removeListener

    public boolean removeListener(NamingContext.Listener listener)