// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_naming_InitialContext__
#define __javax_naming_InitialContext__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace naming
    {
      class InitialContext;
      class NameParser;
      class NamingEnumeration;
      class Name;
      class Context;
    }
  }
};

class ::javax::naming::InitialContext : public ::java::lang::Object
{
public:
  InitialContext (::java::util::Hashtable *);
public:  // actually protected
  InitialContext (jboolean);
public:
  InitialContext ();
public:  // actually protected
  virtual void init (::java::util::Hashtable *);
private:
  static void merge (::java::util::Hashtable *, ::java::util::Hashtable *);
public:  // actually protected
  virtual ::javax::naming::Context *getDefaultInitCtx ();
  virtual ::javax::naming::Context *getURLOrDefaultInitCtx (::javax::naming::Name *);
  virtual ::javax::naming::Context *getURLOrDefaultInitCtx (::java::lang::String *);
public:
  virtual void bind (::javax::naming::Name *, ::java::lang::Object *);
  virtual void bind (::java::lang::String *, ::java::lang::Object *);
  virtual ::java::lang::Object *lookup (::javax::naming::Name *);
  virtual ::java::lang::Object *lookup (::java::lang::String *);
  virtual void rebind (::javax::naming::Name *, ::java::lang::Object *);
  virtual void rebind (::java::lang::String *, ::java::lang::Object *);
  virtual void unbind (::javax::naming::Name *);
  virtual void unbind (::java::lang::String *);
  virtual void rename (::javax::naming::Name *, ::javax::naming::Name *);
  virtual void rename (::java::lang::String *, ::java::lang::String *);
  virtual ::javax::naming::NamingEnumeration *list (::javax::naming::Name *);
  virtual ::javax::naming::NamingEnumeration *list (::java::lang::String *);
  virtual ::javax::naming::NamingEnumeration *listBindings (::javax::naming::Name *);
  virtual ::javax::naming::NamingEnumeration *listBindings (::java::lang::String *);
  virtual void destroySubcontext (::javax::naming::Name *);
  virtual void destroySubcontext (::java::lang::String *);
  virtual ::javax::naming::Context *createSubcontext (::javax::naming::Name *);
  virtual ::javax::naming::Context *createSubcontext (::java::lang::String *);
  virtual ::java::lang::Object *lookupLink (::javax::naming::Name *);
  virtual ::java::lang::Object *lookupLink (::java::lang::String *);
  virtual ::javax::naming::NameParser *getNameParser (::javax::naming::Name *);
  virtual ::javax::naming::NameParser *getNameParser (::java::lang::String *);
  virtual ::javax::naming::Name *composeName (::javax::naming::Name *, ::javax::naming::Name *);
  virtual ::java::lang::String *composeName (::java::lang::String *, ::java::lang::String *);
  virtual ::java::lang::Object *addToEnvironment (::java::lang::String *, ::java::lang::Object *);
  virtual ::java::lang::Object *removeFromEnvironment (::java::lang::String *);
  virtual ::java::util::Hashtable *getEnvironment () { return myProps; }
  virtual void close ();
  virtual ::java::lang::String *getNameInNamespace ();
public:  // actually protected
  ::javax::naming::Context * __attribute__((aligned(__alignof__( ::java::lang::Object )))) defaultInitCtx;
  jboolean gotDefault;
  ::java::util::Hashtable *myProps;
private:
  static JArray< ::java::lang::String *> *colon_list;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_naming_InitialContext__ */
