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

#ifndef __java_util_Collections$CopiesList__
#define __java_util_Collections$CopiesList__

#pragma interface

#include <java/util/AbstractList.h>
#include <gcj/array.h>


class java::util::Collections$CopiesList : public ::java::util::AbstractList
{

public: // actually package-private
  Collections$CopiesList(jint, ::java::lang::Object *);
public:
  jint size();
  ::java::lang::Object * get(jint);
  jboolean contains(::java::lang::Object *);
  jint indexOf(::java::lang::Object *);
  jint lastIndexOf(::java::lang::Object *);
  ::java::util::List * subList(jint, jint);
  JArray< ::java::lang::Object * > * toArray();
  ::java::lang::String * toString();
private:
  static const jlong serialVersionUID = 2739099268398711800LL;
  jint __attribute__((aligned(__alignof__( ::java::util::AbstractList)))) n;
  ::java::lang::Object * element;
public:
  static ::java::lang::Class class$;
};

#endif // __java_util_Collections$CopiesList__
