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

#ifndef __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__
#define __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace tree
      {
          class DefaultMutableTreeNode$PostorderEnumeration;
          class TreeNode;
      }
    }
  }
}

class javax::swing::tree::DefaultMutableTreeNode$PostorderEnumeration : public ::java::lang::Object
{

public: // actually package-private
  DefaultMutableTreeNode$PostorderEnumeration(::javax::swing::tree::TreeNode *);
public:
  virtual jboolean hasMoreElements();
  virtual ::javax::swing::tree::TreeNode * DefaultMutableTreeNode$PostorderEnumeration$nextElement();
private:
  ::javax::swing::tree::TreeNode * traverse(::java::util::Enumeration *);
public:
  virtual ::java::lang::Object * nextElement();
public: // actually package-private
  ::java::util::Stack * __attribute__((aligned(__alignof__( ::java::lang::Object)))) nodes;
  ::java::util::Stack * childrenEnums;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_tree_DefaultMutableTreeNode$PostorderEnumeration__
