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

#ifndef __java_util_zip_ZipFile__
#define __java_util_zip_ZipFile__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

class java::util::zip::ZipFile : public ::java::lang::Object
{
public:
  ZipFile (::java::lang::String *);
  ZipFile (::java::io::File *);
  ZipFile (::java::io::File *, jint);
private:
  jint readLeShort (::java::io::DataInput *, jbyteArray);
  jint readLeInt (::java::io::DataInput *, jbyteArray);
  jint readLeShort (jbyteArray, jint);
  jint readLeInt (jbyteArray, jint);
  void readEntries ();
public:
  virtual void close ();
public:  // actually protected
  virtual void finalize ();
public:
  virtual ::java::util::Enumeration *entries ();
private:
  ::java::util::HashMap *getEntries ();
public:
  virtual ::java::util::zip::ZipEntry *getEntry (::java::lang::String *);
private:
  jlong checkLocalHeader (::java::util::zip::ZipEntry *);
public:
  virtual ::java::io::InputStream *getInputStream (::java::util::zip::ZipEntry *);
  virtual ::java::lang::String *getName () { return name; }
  virtual jint size ();
  static const jint OPEN_READ = 1L;
  static const jint OPEN_DELETE = 4L;
private:
  ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object )))) name;
  ::java::io::RandomAccessFile *raf;
  ::java::util::HashMap *entries__;
  jboolean closed;
  jbyteArray locBuf;

  friend class java_util_zip_ZipFile$PartialInputStream;
  friend class java_util_zip_ZipFile$ZipEntryEnumeration;
public:

  static ::java::lang::Class class$;
};

#endif /* __java_util_zip_ZipFile__ */
