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

#ifndef __gnu_java_beans_editors_NativeFloatEditor__
#define __gnu_java_beans_editors_NativeFloatEditor__

#pragma interface

#include <java/beans/PropertyEditorSupport.h>
extern "Java"
{
  namespace gnu
  {
    namespace java
    {
      namespace beans
      {
        namespace editors
        {
            class NativeFloatEditor;
        }
      }
    }
  }
}

class gnu::java::beans::editors::NativeFloatEditor : public ::java::beans::PropertyEditorSupport
{

public:
  NativeFloatEditor();
  virtual void setAsText(::java::lang::String *);
  virtual ::java::lang::String * getAsText();
  static ::java::lang::Class class$;
};

#endif // __gnu_java_beans_editors_NativeFloatEditor__
