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

#ifndef __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__
#define __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__

#pragma interface

#include <javax/imageio/metadata/IIOMetadataFormatImpl$NodeObject.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace imageio
    {
      namespace metadata
      {
          class IIOMetadataFormatImpl;
          class IIOMetadataFormatImpl$NodeObjectEnumerated;
      }
    }
  }
  namespace org
  {
    namespace w3c
    {
      namespace dom
      {
          class Element;
      }
    }
  }
}

class javax::imageio::metadata::IIOMetadataFormatImpl$NodeObjectEnumerated : public ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject
{

public:
  IIOMetadataFormatImpl$NodeObjectEnumerated(::javax::imageio::metadata::IIOMetadataFormatImpl *, ::org::w3c::dom::Element *, ::java::lang::Class *, jboolean, ::java::lang::Object *, ::java::util::List *);
  virtual JArray< ::java::lang::Object * > * getEnumerations();
public: // actually protected
  ::java::util::List * __attribute__((aligned(__alignof__( ::javax::imageio::metadata::IIOMetadataFormatImpl$NodeObject)))) enumeratedValues;
public: // actually package-private
  ::javax::imageio::metadata::IIOMetadataFormatImpl * this$0;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_imageio_metadata_IIOMetadataFormatImpl$NodeObjectEnumerated__
