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

#ifndef __java_util_AbstractSequentialList__
#define __java_util_AbstractSequentialList__

#pragma interface

#include <java/util/AbstractList.h>

class java::util::AbstractSequentialList : public ::java::util::AbstractList
{

public: // actually protected
  AbstractSequentialList();
public:
  virtual ::java::util::ListIterator * listIterator(jint) = 0;
  virtual void add(jint, ::java::lang::Object *);
  virtual jboolean addAll(jint, ::java::util::Collection *);
  virtual ::java::lang::Object * get(jint);
  virtual ::java::util::Iterator * iterator();
  virtual ::java::lang::Object * remove(jint);
  virtual ::java::lang::Object * set(jint, ::java::lang::Object *);
  static ::java::lang::Class class$;
};

#endif // __java_util_AbstractSequentialList__
