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

#ifndef __java_awt_datatransfer_FlavorMap__
#define __java_awt_datatransfer_FlavorMap__

#pragma interface

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

extern "Java"
{
  namespace java
  {
    namespace awt
    {
      namespace datatransfer
      {
          class DataFlavor;
          class FlavorMap;
      }
    }
  }
}

class java::awt::datatransfer::FlavorMap : public ::java::lang::Object
{

public:
  virtual ::java::util::Map * getNativesForFlavors(JArray< ::java::awt::datatransfer::DataFlavor * > *) = 0;
  virtual ::java::util::Map * getFlavorsForNatives(JArray< ::java::lang::String * > *) = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __java_awt_datatransfer_FlavorMap__
