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

#ifndef __javax_accessibility_AccessibleTableModelChange__
#define __javax_accessibility_AccessibleTableModelChange__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace accessibility
    {
        class AccessibleTableModelChange;
    }
  }
}

class javax::accessibility::AccessibleTableModelChange : public ::java::lang::Object
{

public:
  virtual jint getType() = 0;
  virtual jint getFirstRow() = 0;
  virtual jint getLastRow() = 0;
  virtual jint getFirstColumn() = 0;
  virtual jint getLastColumn() = 0;
  static const jint INSERT = 1;
  static const jint UPDATE = 0;
  static const jint DELETE = -1;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_accessibility_AccessibleTableModelChange__
