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

#ifndef __org_apache_lucene_store_FSDirectory__
#define __org_apache_lucene_store_FSDirectory__

#pragma interface

#include <org/apache/lucene/store/Directory.h>
#include <gcj/array.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace store
        {
          class IndexInput;
          class IndexOutput;
          class LockFactory;
          class FSDirectory;
        }
      }
    }
  }
  namespace java
  {
    namespace security
    {
      class MessageDigest;
    }
  }
}

class org::apache::lucene::store::FSDirectory : public ::org::apache::lucene::store::Directory
{
public:
  static void setDisableLocks (jboolean);
  static jboolean getDisableLocks ();
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::lang::String *, jboolean);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::lang::String *, jboolean, ::org::apache::lucene::store::LockFactory *, jboolean);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::lang::String *, jboolean, ::org::apache::lucene::store::LockFactory *);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::io::File *, jboolean, jboolean);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::io::File *, jboolean, ::org::apache::lucene::store::LockFactory *, jboolean);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::io::File *, jboolean, ::org::apache::lucene::store::LockFactory *);
  static ::org::apache::lucene::store::FSDirectory *getDirectory (::java::io::File *, jboolean);
public:  // actually protected
  FSDirectory ();
private:
  void init (::java::io::File *, jboolean, jboolean);
  void init (::java::io::File *, jboolean, ::org::apache::lucene::store::LockFactory *, jboolean);
  void create (jboolean);
public:
  virtual JArray< ::java::lang::String *> *list ();
  virtual jboolean fileExists (::java::lang::String *);
  virtual jlong fileModified (::java::lang::String *);
  static jlong fileModified (::java::io::File *, ::java::lang::String *);
  virtual void touchFile (::java::lang::String *);
  virtual jlong fileLength (::java::lang::String *);
  virtual void deleteFile (::java::lang::String *);
  virtual void renameFile (::java::lang::String *, ::java::lang::String *);
  virtual ::org::apache::lucene::store::IndexOutput *createOutput (::java::lang::String *);
  virtual ::org::apache::lucene::store::IndexInput *openInput (::java::lang::String *);
  virtual ::java::lang::String *getLockID ();
  virtual void close ();
  virtual ::java::io::File *getFile () { return directory; }
  virtual ::java::lang::String *toString ();
private:
  static ::java::util::Hashtable *DIRECTORIES;
  static jboolean disableLocks;
public:
  static ::java::lang::String *LOCK_DIR;
private:
  static ::java::lang::Class *IMPL;
  static ::java::security::MessageDigest *DIGESTER;
  jbyteArray __attribute__((aligned(__alignof__( ::org::apache::lucene::store::Directory ))))  buffer;
  ::java::io::File *directory;
  jint refCount;
  static jcharArray HEX_DIGITS;
public: // actually package-private
  static ::java::lang::Class *class$org$apache$lucene$store$FSDirectory;
public:

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

#endif /* __org_apache_lucene_store_FSDirectory__ */
