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

#ifndef __org_apache_lucene_index_FieldInfos__
#define __org_apache_lucene_index_FieldInfos__

#pragma interface

#include <java/lang/Object.h>

extern "Java"
{
  namespace org
  {
    namespace apache
    {
      namespace lucene
      {
        namespace index
        {
          class FieldInfos;
          class FieldInfo;
        }
        namespace document
        {
          class Document;
        }
        namespace store
        {
          class IndexInput;
          class IndexOutput;
          class Directory;
        }
      }
    }
  }
}

class org::apache::lucene::index::FieldInfos : public ::java::lang::Object
{
public: // actually package-private
  FieldInfos ();
  FieldInfos (::org::apache::lucene::store::Directory *, ::java::lang::String *);
public:
  void add (::org::apache::lucene::document::Document *);
  void addIndexed (::java::util::Collection *, jboolean, jboolean, jboolean);
  void add (::java::util::Collection *, jboolean);
  void add (::java::lang::String *, jboolean);
  void add (::java::lang::String *, jboolean, jboolean);
  void add (::java::lang::String *, jboolean, jboolean, jboolean, jboolean);
  void add (::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean);
private:
  void addInternal (::java::lang::String *, jboolean, jboolean, jboolean, jboolean, jboolean);
public:
  jint fieldNumber (::java::lang::String *);
  ::org::apache::lucene::index::FieldInfo *fieldInfo (::java::lang::String *);
  ::java::lang::String *fieldName (jint);
  ::org::apache::lucene::index::FieldInfo *fieldInfo (jint);
  jint size ();
  jboolean hasVectors ();
  void write (::org::apache::lucene::store::Directory *, ::java::lang::String *);
  void write (::org::apache::lucene::store::IndexOutput *);
private:
  void read (::org::apache::lucene::store::IndexInput *);
public: // actually package-private
  static const jint IS_INDEXED = 1L;
  static const jint STORE_TERMVECTOR = 2L;
  static const jint STORE_POSITIONS_WITH_TERMVECTOR = 4L;
  static const jint STORE_OFFSET_WITH_TERMVECTOR = 8L;
  static const jint OMIT_NORMS = 16L;
private:
  ::java::util::ArrayList * __attribute__((aligned(__alignof__( ::java::lang::Object )))) byNumber;
  ::java::util::HashMap *byName;
public:

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

#endif /* __org_apache_lucene_index_FieldInfos__ */
