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

#ifndef __org_omg_CosNaming_Binding__
#define __org_omg_CosNaming_Binding__

#pragma interface

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

extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CosNaming
      {
          class Binding;
          class BindingType;
          class NameComponent;
      }
    }
  }
}

class org::omg::CosNaming::Binding : public ::java::lang::Object
{

public:
  Binding();
  Binding(JArray< ::org::omg::CosNaming::NameComponent * > *, ::org::omg::CosNaming::BindingType *);
  ::org::omg::CosNaming::BindingType * __attribute__((aligned(__alignof__( ::java::lang::Object)))) binding_type;
  JArray< ::org::omg::CosNaming::NameComponent * > * binding_name;
  static ::java::lang::Class class$;
};

#endif // __org_omg_CosNaming_Binding__
