%{
	#include "CLucene/document/Document.h"
	#include "CLucene/document/Field.h"
	#include "CLucene/document/DateField.h"
%}

////////////////////////////////////////////////////////////////////////////////
//Field.h
////////////////////////////////////////////////////////////////////////////////
%newobject lucene::document::Field::Keyword;
%newobject lucene::document::Field::UnIndexed;
%newobject lucene::document::Field::Text;
%newobject lucene::document::Field::UnStored;

LUCENE_ADDINREF1_CONSTRUCTOR(lucene::document::Field::Field(const TCHAR* name, lucene::util::Reader* reader, bool store, bool index, bool token, const bool storeTermVector=false),2,3)
LUCENE_ADDINREF1_CONSTRUCTOR(lucene::document::Field::Field(const TCHAR* name, lucene::util::Reader* reader, const bool storeTermVector=false),2,3)
LUCENE_ADDINREF1_CONSTRUCTOR(lucene::document::Field::Text(const TCHAR* name, lucene::util::Reader* value, const bool storeTermVector=false),2,3)

////////////////////////////////////////////////////////////////////////////////
//Document.h
////////////////////////////////////////////////////////////////////////////////
%ignore lucene::document::DocumentFieldList; //internal
%ignore lucene::document::DocumentFieldEnumeration::DocumentFieldEnumeration;
%newobject lucene::document::Document::fields;
LUCENE_ADDINREF1(lucene::document::Document::add,1,2)

////////////////////////////////////////////////////////////////////////////////
//DateField.h
////////////////////////////////////////////////////////////////////////////////
//static, so no constructor //todo:dont make no constructor
%ignore lucene::document::DATEFIELD_DATE_LEN;


////////////////////////////////////////////////////////////////////////////////
//now include local definition
%include "local_document.i"

//now include the clucene headers
%include "CLucene/document/Field.h";
%include "CLucene/document/DateField.h"
%include "CLucene/document/Document.h"
