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

#ifndef __org_omg_CORBA_SetOverrideType__
#define __org_omg_CORBA_SetOverrideType__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace org
  {
    namespace omg
    {
      namespace CORBA
      {
          class SetOverrideType;
      }
    }
  }
}

class org::omg::CORBA::SetOverrideType : public ::java::lang::Object
{

public: // actually protected
  SetOverrideType(jint);
public:
  static ::org::omg::CORBA::SetOverrideType * from_int(jint);
  virtual ::java::lang::String * toString();
  virtual jint value();
private:
  static const jlong serialVersionUID = -2761857189425106972LL;
public:
  static const jint _ADD_OVERRIDE = 1;
  static const jint _SET_OVERRIDE = 0;
  static ::org::omg::CORBA::SetOverrideType * ADD_OVERRIDE;
  static ::org::omg::CORBA::SetOverrideType * SET_OVERRIDE;
private:
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) _value;
public:
  static ::java::lang::Class class$;
};

#endif // __org_omg_CORBA_SetOverrideType__
