# OpenORB 1.3.1: Interface NamingContextOperations

## org.omg.CosNaming
Interface NamingContextOperations

All Known Subinterfaces:
  NamingContext, NamingContextExt, NamingContextExtOperations

All Known Implementing Classes:
  NamingContextPOA

public interface NamingContextOperations

This interface provides all functions to bind, rebind and resolve an object into the naming graph.

Method Summary
`void` `bind_context(NameComponent[] n, NamingContext nc)` Names an object that is a naming context.
`NamingContext` `bind_new_context(NameComponent[] n)` This operation creates a new context and binds it to the name supplied as an argument.
`void` `bind(NameComponent[] n, Object obj)` Creates a binding of a name and an object in the naming context.
`void` `destroy()` The destroy operation deletes a naming context.
`void` `list(int how_many, BindingListHolder bl, BindingIteratorHolder bi)` The list operation allows a client to iterate through a set of bindings in a naming context.
`NamingContext` `new_context()` This operation returns a naming context implemented by the same naming server as the context on which the operation was invoked.
`void` `rebind_context(NameComponent[] n, NamingContext nc)` Creates a binding of a name and a naming context in the naming context even if the name is already bound in the context.
`void` `rebind(NameComponent[] n, Object obj)` Creates a binding of a name and an object in the naming context even if the name is already bound in the context.
`Object` `resolve(NameComponent[] n)` Names can have multiple components; therefore, name resolution can traverse multiple contexts.
`void` `unbind(NameComponent[] n)` The unbind operation removes a name binding from a context.

Method Detail

### bind

    public void bind(NameComponent[] n,
                     Object obj)
              throws NotFound,
                     CannotProceed,
                     InvalidName,
                     AlreadyBound

  Creates a binding of a name and an object in the naming context. Naming contexts that are bound using bind do not participate in name resolution when compound names are passed to be resolved.
  Parameters:
    `n` - The compound name for the object to bind
    `obj` - The object to bind
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `Indicates` - the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)
    `AlreadyBound` - Indicates an object is already bound to the specified name. Only one object can be bound to a particular name in a context. The bind and the bind_context operations raise the AlreadyBound exception if the name is bound in the context; the rebind and rebind_context operations unbind the name and rebind the name to the object passed as an argument.

### rebind

    public void rebind(NameComponent[] n,
                       Object obj)
                throws NotFound,
                       CannotProceed,
                       InvalidName

  Creates a binding of a name and an object in the naming context even if the name is already bound in the context. Naming contexts that are bound using rebind do not participate in name resolution when compound names are passed to be resolved.
  Parameters:
    `n` - The compound name for the object to rebind
    `obj` - The object to rebind
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)
    `AlreadyBound` - Indicates an object is already bound to the specified name. Only one object can be bound to a particular name in a context. The bind and the bind_context operations raise the AlreadyBound exception if the name is bound in the context; the rebind and rebind_context operations unbind the name and rebind the name to the object passed as an argument.

### bind_context

    public void bind_context(NameComponent[] n,
                             NamingContext nc)
                      throws NotFound,
                             CannotProceed,
                             InvalidName,
                             AlreadyBound

  Names an object that is a naming context. Naming contexts that are bound using bind_context() participate in name resolution when compound names are passed to be resolved.
  Parameters:
    `n` - The compound name for the naming context to bind
    `obj` - The naming context to bind
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)
    `AlreadyBound` - Indicates an object is already bound to the specified name. Only one object can be bound to a particular name in a context. The bind and the bind_context operations raise the AlreadyBound exception if the name is bound in the context; the rebind and rebind_context operations unbind the name and rebind the name to the object passed as an argument.

### rebind_context

    public void rebind_context(NameComponent[] n,
                               NamingContext nc)
                        throws NotFound,
                               CannotProceed,
                               InvalidName

  Creates a binding of a name and a naming context in the naming context even if the name is already bound in the context. Naming contexts that are bound using rebind_context() participate in name resolution when compound names are passed to be resolved.
  Parameters:
    `n` - The compound name for the naming context to rebind
    `obj` - The naming context to rebind
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)
    `AlreadyBound` - Indicates an object is already bound to the specified name. Only one object can be bound to a particular name in a context. The bind and the bind_context operations raise the AlreadyBound exception if the name is bound in the context; the rebind and rebind_context operations unbind the name and rebind the name to the object passed as an argument.

### resolve

    public Object resolve(NameComponent[] n)
                   throws NotFound,
                          CannotProceed,
                          InvalidName

  Names can have multiple components; therefore, name resolution can traverse multiple contexts.
  Parameters:
    `n` - The compound name for the object to resolve.
  Returns:
    the resolved object.
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)

### unbind

    public void unbind(NameComponent[] n)
                throws NotFound,
                       CannotProceed,
                       InvalidName

  The unbind operation removes a name binding from a context.
  Parameters:
    `n` - The compound name for the node to unbind ( an object or a naming context )
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)

### new_context

    public NamingContext new_context()

  This operation returns a naming context implemented by the same naming server as the context on which the operation was invoked. The new context is not bound to any name.
  Returns:
    A new naming context ( this new naming context must be binded )

### bind_new_context

    public NamingContext bind_new_context(NameComponent[] n)
                                   throws NotFound,
                                          AlreadyBound,
                                          CannotProceed,
                                          InvalidName

  This operation creates a new context and binds it to the name supplied as an argument. The newly-created context is implemented by the same naming server as the context in which it was bound (that is, the naming server that implements the context denoted by the name argument excluding the last component).
  Parameters:
    `n` - The compound name for the naming context to create and to bind.
  Throws:
    `NotFound` - Indicates the name does not identify a binding.
    `CannotProceed` - Indicates that the implementation has given up for some reason. The client, however, may be able to continue the operation at the returned naming context.
    `InvalidName` - Indicates the name is invalid. (A name of length 0 is invalid; implementations may place other restrictions on names.)
    `AlreadyBound` - Indicates an object is already bound to the specified name. Only one object can be bound to a particular name in a context.

### destroy

    public void destroy()
                 throws NotEmpty

  The destroy operation deletes a naming context.
  Throws:
    `NotEmpty` - If the naming context contains bindings, the NotEmpty exception is raised.

### list

    public void list(int how_many,
                     BindingListHolder bl,
                     BindingIteratorHolder bi)

  The list operation allows a client to iterate through a set of bindings in a naming context.
  Parameters:
    `how_many` - Maximum number of elements into the binding list.
    `bl` - This parameter returns a list that contains all node of the naming context
    `bi` - This parameter returns a binding iterator to iterate in the list.
  Returns:
    The list operation returns at most the requested number of bindings in BindingList bl. - If the naming context contains additional bindings, the list operation returns a BindingIterator with the additional bindings. - If the naming context does not contain additional bindings, the binding iterator is a nil object reference.