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

#ifndef __javax_activation_MimeTypeParameterList$IteratorEnumeration__
#define __javax_activation_MimeTypeParameterList$IteratorEnumeration__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace activation
    {
        class MimeTypeParameterList$IteratorEnumeration;
    }
  }
}

class javax::activation::MimeTypeParameterList$IteratorEnumeration : public ::java::lang::Object
{

public: // actually package-private
  MimeTypeParameterList$IteratorEnumeration(::java::util::Iterator *);
public:
  virtual jboolean hasMoreElements();
  virtual ::java::lang::String * MimeTypeParameterList$IteratorEnumeration$nextElement();
  virtual ::java::lang::Object * nextElement();
public: // actually package-private
  ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterator;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_activation_MimeTypeParameterList$IteratorEnumeration__
