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

#ifndef __org_omg_CORBA__PolicyStub__
#define __org_omg_CORBA__PolicyStub__

#pragma interface

#include <org/omg/CORBA/portable/ObjectImpl.h>
#include <gcj/array.h>

extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class Policy;
          class _PolicyStub;
        namespace portable
        {
            class Delegate;
        }
      }
    }
  }
}

class org::omg::CORBA::_PolicyStub : public ::org::omg::CORBA::portable::ObjectImpl
{

public:
  _PolicyStub();
  _PolicyStub(::org::omg::CORBA::portable::Delegate *);
  virtual JArray< ::java::lang::String * > * _ids();
  virtual void destroy();
  virtual ::org::omg::CORBA::Policy * copy();
  virtual jint policy_type();
private:
  static const jlong serialVersionUID = 2453656196708903849LL;
public:
  static ::java::lang::Class class$;
};

#endif // __org_omg_CORBA__PolicyStub__
