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

#ifndef __javax_naming_directory_ModificationItem__
#define __javax_naming_directory_ModificationItem__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace naming
    {
      namespace directory
      {
          class Attribute;
          class ModificationItem;
      }
    }
  }
}

class javax::naming::directory::ModificationItem : public ::java::lang::Object
{

public:
  ModificationItem(jint, ::javax::naming::directory::Attribute *);
  virtual jint getModificationOp();
  virtual ::javax::naming::directory::Attribute * getAttribute();
  virtual ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = 7573258562534746850LL;
  jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) mod_op;
  ::javax::naming::directory::Attribute * attr;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_naming_directory_ModificationItem__
