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

#ifndef __javax_swing_TransferHandler__
#define __javax_swing_TransferHandler__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace event
      {
        class InputEvent;
      }
      namespace datatransfer
      {
        class Clipboard;
        class Transferable;
        class DataFlavor;
      }
    }
  }
  namespace javax
  {
    namespace swing
    {
      class TransferHandler;
      class JComponent;
      class Icon;
      class Action;
    }
  }
}

class javax::swing::TransferHandler : public ::java::lang::Object
{
public:
  static ::javax::swing::Action *getCopyAction ();
  static ::javax::swing::Action *getCutAction ();
  static ::javax::swing::Action *getPasteAction ();
public:  // actually protected
  TransferHandler ();
public:
  TransferHandler (::java::lang::String *);
  virtual jboolean canImport (::javax::swing::JComponent *, JArray< ::java::awt::datatransfer::DataFlavor *> *);
public:  // actually protected
  virtual ::java::awt::datatransfer::Transferable *createTransferable (::javax::swing::JComponent *) { return 0; }
public:
  virtual void exportAsDrag (::javax::swing::JComponent *, ::java::awt::event::InputEvent *, jint) { }
public:  // actually protected
  virtual void exportDone (::javax::swing::JComponent *, ::java::awt::datatransfer::Transferable *, jint) { }
public:
  virtual void exportToClipboard (::javax::swing::JComponent *, ::java::awt::datatransfer::Clipboard *, jint) { }
  virtual jint getSourceActions (::javax::swing::JComponent *) { return sourceActions; }
  virtual ::javax::swing::Icon *getVisualRepresentation (::java::awt::datatransfer::Transferable *) { return visualRepresentation; }
  virtual jboolean importData (::javax::swing::JComponent *, ::java::awt::datatransfer::Transferable *);
private:
  static const jlong serialVersionUID = -967749805571669910LL;
  static ::java::lang::String *COMMAND_COPY;
  static ::java::lang::String *COMMAND_CUT;
  static ::java::lang::String *COMMAND_PASTE;
public:
  static const jint NONE = 0L;
  static const jint COPY = 1L;
  static const jint MOVE = 2L;
  static const jint COPY_OR_MOVE = 3L;
private:
  static ::javax::swing::Action *copyAction;
  static ::javax::swing::Action *cutAction;
  static ::javax::swing::Action *pasteAction;
  jint __attribute__((aligned(__alignof__( ::java::lang::Object ))))  sourceActions;
  ::javax::swing::Icon *visualRepresentation;

  friend class javax_swing_TransferHandler$TransferAction;
public:

  static ::java::lang::Class class$;
};

#endif /* __javax_swing_TransferHandler__ */
