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

#ifndef __javax_swing_DefaultCellEditor$JTextFieldDelegate__
#define __javax_swing_DefaultCellEditor$JTextFieldDelegate__

#pragma interface

#include <javax/swing/DefaultCellEditor$EditorDelegate.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
        class DefaultCellEditor;
        class DefaultCellEditor$JTextFieldDelegate;
    }
  }
}

class javax::swing::DefaultCellEditor$JTextFieldDelegate : public ::javax::swing::DefaultCellEditor$EditorDelegate
{

  DefaultCellEditor$JTextFieldDelegate(::javax::swing::DefaultCellEditor *);
public:
  virtual void setValue(::java::lang::Object *);
  virtual ::java::lang::Object * getCellEditorValue();
public: // actually package-private
  DefaultCellEditor$JTextFieldDelegate(::javax::swing::DefaultCellEditor *, ::javax::swing::DefaultCellEditor$JTextFieldDelegate *);
private:
  static const jlong serialVersionUID = 1LL;
public: // actually package-private
  ::javax::swing::DefaultCellEditor * __attribute__((aligned(__alignof__( ::javax::swing::DefaultCellEditor$EditorDelegate)))) this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_DefaultCellEditor$JTextFieldDelegate__
