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

#ifndef __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__
#define __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__

#pragma interface

#include <java/lang/Object.h>
extern "Java"
{
  namespace javax
  {
    namespace swing
    {
      namespace tree
      {
          class DefaultTreeSelectionModel$PathPlaceHolder;
          class TreePath;
      }
    }
  }
}

class javax::swing::tree::DefaultTreeSelectionModel$PathPlaceHolder : public ::java::lang::Object
{

public: // actually package-private
  DefaultTreeSelectionModel$PathPlaceHolder(::javax::swing::tree::TreePath *, jboolean);
  ::javax::swing::tree::TreePath * __attribute__((aligned(__alignof__( ::java::lang::Object)))) path;
  jboolean isNew;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_swing_tree_DefaultTreeSelectionModel$PathPlaceHolder__
