/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.25
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */


#ifdef __cplusplus
template<class T> class SwigValueWrapper {
    T *tt;
public:
    SwigValueWrapper() : tt(0) { }
    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
    SwigValueWrapper(const T& t) : tt(new T(t)) { }
    ~SwigValueWrapper() { delete tt; } 
    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
    operator T&() const { return *tt; }
    T *operator&() { return tt; }
private:
    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
};
#endif

/***********************************************************************
 *
 *  This section contains generic SWIG labels for method/variable
 *  declarations/attributes, and other compiler dependent labels.
 *
 ************************************************************************/

/* template workaround for compilers that cannot correctly implement the C++ standard */
#ifndef SWIGTEMPLATEDISAMBIGUATOR
#  if defined(__SUNPRO_CC) && (__SUNPRO_CC <= 0x560)
#    define SWIGTEMPLATEDISAMBIGUATOR template
#  else
#    define SWIGTEMPLATEDISAMBIGUATOR 
#  endif
#endif

/* inline attribute */
#ifndef SWIGINLINE
# if defined(__cplusplus) || (defined(__GNUC__) && !defined(__STRICT_ANSI__))
#   define SWIGINLINE inline
# else
#   define SWIGINLINE
# endif
#endif

/* attribute recognised by some compilers to avoid 'unused' warnings */
#ifndef SWIGUNUSED
# if defined(__GNUC__) || defined(__ICC)
#   define SWIGUNUSED __attribute__ ((unused)) 
# else
#   define SWIGUNUSED 
# endif
#endif

/* internal SWIG method */
#ifndef SWIGINTERN
# define SWIGINTERN static SWIGUNUSED
#endif

/* internal inline SWIG method */
#ifndef SWIGINTERNINLINE
# define SWIGINTERNINLINE SWIGINTERN SWIGINLINE
#endif

/* exporting methods for Windows DLLs */
#ifndef SWIGEXPORT
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   if defined(STATIC_LINKED)
#     define SWIGEXPORT
#   else
#     define SWIGEXPORT __declspec(dllexport)
#   endif
# else
#   define SWIGEXPORT
# endif
#endif

/* calling conventions for Windows */
#ifndef SWIGSTDCALL
# if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#   define SWIGSTDCALL __stdcall
# else
#   define SWIGSTDCALL
# endif 
#endif



#include <stdlib.h>
#include <string.h>
#include <stdio.h>


/* Support for throwing C# exceptions from C/C++. There are two types: 
 * Exceptions that take a message and ArgumentExceptions that take a message and a parameter name. */
typedef enum {
  SWIG_CSharpApplicationException,
  SWIG_CSharpArithmeticException,
  SWIG_CSharpDivideByZeroException,
  SWIG_CSharpIndexOutOfRangeException,
  SWIG_CSharpInvalidOperationException,
  SWIG_CSharpIOException,
  SWIG_CSharpNullReferenceException,
  SWIG_CSharpOutOfMemoryException,
  SWIG_CSharpOverflowException,
  SWIG_CSharpSystemException
} SWIG_CSharpExceptionCodes;

typedef enum {
  SWIG_CSharpArgumentException,
  SWIG_CSharpArgumentNullException,
  SWIG_CSharpArgumentOutOfRangeException
} SWIG_CSharpExceptionArgumentCodes;

typedef void (SWIGSTDCALL* SWIG_CSharpExceptionCallback_t)(const char *);
typedef void (SWIGSTDCALL* SWIG_CSharpExceptionArgumentCallback_t)(const char *, const char *);

typedef struct {
  SWIG_CSharpExceptionCodes code;
  SWIG_CSharpExceptionCallback_t callback;
} SWIG_CSharpException_t;

typedef struct {
  SWIG_CSharpExceptionArgumentCodes code;
  SWIG_CSharpExceptionArgumentCallback_t callback;
} SWIG_CSharpExceptionArgument_t;

static SWIG_CSharpException_t SWIG_csharp_exceptions[] = {
  { SWIG_CSharpApplicationException, NULL },
  { SWIG_CSharpArithmeticException, NULL },
  { SWIG_CSharpDivideByZeroException, NULL },
  { SWIG_CSharpIndexOutOfRangeException, NULL },
  { SWIG_CSharpInvalidOperationException, NULL },
  { SWIG_CSharpIOException, NULL },
  { SWIG_CSharpNullReferenceException, NULL },
  { SWIG_CSharpOutOfMemoryException, NULL },
  { SWIG_CSharpOverflowException, NULL },
  { SWIG_CSharpSystemException, NULL }
};

static SWIG_CSharpExceptionArgument_t SWIG_csharp_exceptions_argument[] = {
  { SWIG_CSharpArgumentException, NULL },
  { SWIG_CSharpArgumentNullException, NULL },
  { SWIG_CSharpArgumentOutOfRangeException, NULL },
};

static void SWIG_CSharpSetPendingException(SWIG_CSharpExceptionCodes code, const char *msg) {
  SWIG_CSharpExceptionCallback_t callback = SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback;
  if (code >=0 && (size_t)code < sizeof(SWIG_csharp_exceptions)/sizeof(SWIG_CSharpException_t)) {
    callback = SWIG_csharp_exceptions[code].callback;
  }
  callback(msg);
}

static void SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpExceptionArgumentCodes code, const char *msg, const char *param_name) {
  SWIG_CSharpExceptionArgumentCallback_t callback = SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback;
  if (code >=0 && (size_t)code < sizeof(SWIG_csharp_exceptions_argument)/sizeof(SWIG_CSharpExceptionArgument_t)) {
    callback = SWIG_csharp_exceptions_argument[code].callback;
  }
  callback(msg, param_name);
}


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionCallbacks_libCLcsharp(
                                                SWIG_CSharpExceptionCallback_t applicationCallback,
                                                SWIG_CSharpExceptionCallback_t arithmeticCallback,
                                                SWIG_CSharpExceptionCallback_t divideByZeroCallback, 
                                                SWIG_CSharpExceptionCallback_t indexOutOfRangeCallback, 
                                                SWIG_CSharpExceptionCallback_t invalidOperationCallback,
                                                SWIG_CSharpExceptionCallback_t ioCallback,
                                                SWIG_CSharpExceptionCallback_t nullReferenceCallback,
                                                SWIG_CSharpExceptionCallback_t outOfMemoryCallback, 
                                                SWIG_CSharpExceptionCallback_t overflowCallback, 
                                                SWIG_CSharpExceptionCallback_t systemCallback) {
  SWIG_csharp_exceptions[SWIG_CSharpApplicationException].callback = applicationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpArithmeticException].callback = arithmeticCallback;
  SWIG_csharp_exceptions[SWIG_CSharpDivideByZeroException].callback = divideByZeroCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIndexOutOfRangeException].callback = indexOutOfRangeCallback;
  SWIG_csharp_exceptions[SWIG_CSharpInvalidOperationException].callback = invalidOperationCallback;
  SWIG_csharp_exceptions[SWIG_CSharpIOException].callback = ioCallback;
  SWIG_csharp_exceptions[SWIG_CSharpNullReferenceException].callback = nullReferenceCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOutOfMemoryException].callback = outOfMemoryCallback;
  SWIG_csharp_exceptions[SWIG_CSharpOverflowException].callback = overflowCallback;
  SWIG_csharp_exceptions[SWIG_CSharpSystemException].callback = systemCallback;
}

#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterExceptionArgumentCallbacks_libCLcsharp(
                                                SWIG_CSharpExceptionArgumentCallback_t argumentCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentNullCallback,
                                                SWIG_CSharpExceptionArgumentCallback_t argumentOutOfRangeCallback) {
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentException].callback = argumentCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentNullException].callback = argumentNullCallback;
  SWIG_csharp_exceptions_argument[SWIG_CSharpArgumentOutOfRangeException].callback = argumentOutOfRangeCallback;
}


/* Callback for returning strings to C# without leaking memory */
typedef char * (SWIGSTDCALL* SWIG_CSharpStringHelperCallback)(const char *);
static SWIG_CSharpStringHelperCallback SWIG_csharp_string_callback = NULL;


#ifdef __cplusplus
extern "C" 
#endif
SWIGEXPORT void SWIGSTDCALL SWIGRegisterStringCallback_libCLcsharp(SWIG_CSharpStringHelperCallback callback) {
  SWIG_csharp_string_callback = callback;
}

/* Contract support */

#define SWIG_contract_assert(nullreturn, expr, msg) if (!(expr)) {SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentOutOfRangeException, msg, ""); return nullreturn; } else


	typedef void (SWIGSTDCALL* SWIG_CLuceneExceptionCallback_t)(const char *,long code);
	static SWIG_CLuceneExceptionCallback_t CL_exceptCallback = NULL;

	#ifdef __cplusplus
	extern "C" 
	#endif
  DllExport void SWIGSTDCALL CLuceneRegisterExceptCallback_libCLcsharp(SWIG_CLuceneExceptionCallback_t callback) {
	  CL_exceptCallback = callback;
	}
	


/* clucene.i: the CLucene scripting interface. */

 //include clucene header
 #include "CLucene.h"

 //we need to fool the swig preprocessor, otherwise it expands these directives
 #define ___FILE___ __FILE__
 #define ___LINE___ __LINE__
 //#pragma SWIG nowarn=501,505,401
 
 #define _CATCHALL(null_value,dummy) catch (CLuceneError& e) { \
		char buf[250]; \
		_snprintf(buf,250,"%s in %s at %d",e.what(),___FILE___,___LINE___); \
		SWIG_exception(null_value,SWIG_RuntimeError,buf); \
		return null_value; \
    } catch (...) { \
		char buf[250]; \
		_snprintf(buf,250,"UNKNOWN exception in %s at %d",___FILE___,___LINE___); \
		SWIG_exception(null_value,SWIG_RuntimeError,buf); \
		return null_value; \
    }



 #define _SUMO 

#define  SWIG_MemoryError    1
#define  SWIG_IOError        2
#define  SWIG_RuntimeError   3
#define  SWIG_IndexError     4
#define  SWIG_TypeError      5
#define  SWIG_DivisionByZero 6
#define  SWIG_OverflowError  7
#define  SWIG_SyntaxError    8
#define  SWIG_ValueError     9
#define  SWIG_SystemError   10
#define  SWIG_UnknownError  99


SWIGINTERN void SWIG_CSharpException(int code, const char *msg) {
  if (code == SWIG_ValueError) {
    SWIG_CSharpExceptionArgumentCodes exception_code = SWIG_CSharpArgumentOutOfRangeException;
    SWIG_CSharpSetPendingExceptionArgument(exception_code, msg, 0);
  } else {
    SWIG_CSharpExceptionCodes exception_code = SWIG_CSharpApplicationException;
    switch(code) {
    case SWIG_MemoryError:
      exception_code = SWIG_CSharpOutOfMemoryException;
      break;
    case SWIG_IndexError:
      exception_code = SWIG_CSharpIndexOutOfRangeException;
      break;
    case SWIG_DivisionByZero:
      exception_code = SWIG_CSharpDivideByZeroException;
      break;
    case SWIG_IOError:
      exception_code = SWIG_CSharpIOException;
      break;
    case SWIG_OverflowError:
      exception_code = SWIG_CSharpOverflowException;
      break;
    case SWIG_RuntimeError:
    case SWIG_TypeError:
    case SWIG_SyntaxError:
    case SWIG_SystemError:
    case SWIG_UnknownError:
    default:
      exception_code = SWIG_CSharpApplicationException;
      break;
    }
    SWIG_CSharpSetPendingException(exception_code, msg);
  }
}
#define SWIG_exception(nullreturn, code, msg) { SWIG_CSharpException(code, msg); return nullreturn; }


#include <stdexcept>


/* csharp/local_util.i: the CLucene scripting csharp interface helpers.
 *
 */


/* csharp/local_extra.i: CLucene scripting csharp interface additional code.
 */
 
//no easy support for arrays, so add our own support in
#include "clucene_arrays.h"
#include "local_arrays.h"


#undef _CATCHALL
#define _CATCHALL(null_value,dummy) catch (CLuceneError& e) { \
		CL_exceptCallback(e.what(),e.number()); \
		return null_value; \
  } catch (...) { \
		char buf[250]; \
		_snprintf(buf,250,"UNKNOWN exception in %s at %d",___FILE___,___LINE___); \
		SWIG_exception(SWIG_RuntimeError,buf); \
		return null_value; \
  }


	






	#include "CLucene/document/Document.h"
	#include "CLucene/document/Field.h"
	#include "CLucene/document/DateField.h"


	#include "CLucene/store/Directory.h"
	#include "CLucene/store/FSDirectory.h"
	#include "CLucene/store/RAMDirectory.h"


	#include "CLucene/analysis/AnalysisHeader.h"
	#include "CLucene/analysis/Analyzers.h"


	#include "CLucene/index/DocumentWriter.h"
	#include "CLucene/index/SegmentMerger.h"
	#include "CLucene/index/TermVector.h"





	#include "CLucene/queryParser/queryParser.h"


#ifdef __cplusplus
extern "C" {
#endif

SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_p_charArray() {
    void * jresult = 0 ;
    _CL_p_p_charArray *result;
    
    {
        try {
            result = (_CL_p_p_charArray *)_CLNEW _CL_p_p_charArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_p_charArray(void * jarg1) {
    _CL_p_p_charArray *arg1 = (_CL_p_p_charArray *) 0 ;
    
    arg1 = (_CL_p_p_charArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_p_charArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_p_charArray *arg1 = (_CL_p_p_charArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_p_charArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_charArray_init(void * jarg1, int jarg2) {
    _CL_p_p_charArray *arg1 = (_CL_p_p_charArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_p_charArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp__CL_p_p_charArray_get(void * jarg1, int jarg2) {
    char * jresult = 0 ;
    _CL_p_p_charArray *arg1 = (_CL_p_p_charArray *) 0 ;
    int arg2 ;
    char *result;
    
    arg1 = (_CL_p_p_charArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = (char *)((_CL_p_p_charArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_charArray_set(void * jarg1, char * jarg2, int jarg3) {
    _CL_p_p_charArray *arg1 = (_CL_p_p_charArray *) 0 ;
    char *arg2 = (char *) 0 ;
    int arg3 ;
    
    arg1 = (_CL_p_p_charArray *)jarg1; 
    arg2 = jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_uint8_tArray() {
    void * jresult = 0 ;
    _CL_p_uint8_tArray *result;
    
    {
        try {
            result = (_CL_p_uint8_tArray *)_CLNEW _CL_p_uint8_tArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_uint8_tArray(void * jarg1) {
    _CL_p_uint8_tArray *arg1 = (_CL_p_uint8_tArray *) 0 ;
    
    arg1 = (_CL_p_uint8_tArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_uint8_tArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_uint8_tArray *arg1 = (_CL_p_uint8_tArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_uint8_tArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_uint8_tArray_init(void * jarg1, int jarg2) {
    _CL_p_uint8_tArray *arg1 = (_CL_p_uint8_tArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_uint8_tArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp__CL_p_uint8_tArray_get(void * jarg1, int jarg2) {
    unsigned char jresult = 0 ;
    _CL_p_uint8_tArray *arg1 = (_CL_p_uint8_tArray *) 0 ;
    int arg2 ;
    uint8_t result;
    
    arg1 = (_CL_p_uint8_tArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = ((_CL_p_uint8_tArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_uint8_tArray_set(void * jarg1, unsigned char jarg2, int jarg3) {
    _CL_p_uint8_tArray *arg1 = (_CL_p_uint8_tArray *) 0 ;
    uint8_t arg2 ;
    int arg3 ;
    
    arg1 = (_CL_p_uint8_tArray *)jarg1; 
    arg2 = (uint8_t)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_int32_tArray() {
    void * jresult = 0 ;
    _CL_p_int32_tArray *result;
    
    {
        try {
            result = (_CL_p_int32_tArray *)_CLNEW _CL_p_int32_tArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_int32_tArray(void * jarg1) {
    _CL_p_int32_tArray *arg1 = (_CL_p_int32_tArray *) 0 ;
    
    arg1 = (_CL_p_int32_tArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_int32_tArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_int32_tArray *arg1 = (_CL_p_int32_tArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_int32_tArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_int32_tArray_init(void * jarg1, int jarg2) {
    _CL_p_int32_tArray *arg1 = (_CL_p_int32_tArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_int32_tArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp__CL_p_int32_tArray_get(void * jarg1, int jarg2) {
    long jresult = 0 ;
    _CL_p_int32_tArray *arg1 = (_CL_p_int32_tArray *) 0 ;
    int arg2 ;
    int32_t result;
    
    arg1 = (_CL_p_int32_tArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = ((_CL_p_int32_tArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_int32_tArray_set(void * jarg1, long jarg2, int jarg3) {
    _CL_p_int32_tArray *arg1 = (_CL_p_int32_tArray *) 0 ;
    int32_t arg2 ;
    int arg3 ;
    
    arg1 = (_CL_p_int32_tArray *)jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_p_lucene__index__IndexReaderArray() {
    void * jresult = 0 ;
    _CL_p_p_lucene__index__IndexReaderArray *result;
    
    {
        try {
            result = (_CL_p_p_lucene__index__IndexReaderArray *)_CLNEW _CL_p_p_lucene__index__IndexReaderArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_p_lucene__index__IndexReaderArray(void * jarg1) {
    _CL_p_p_lucene__index__IndexReaderArray *arg1 = (_CL_p_p_lucene__index__IndexReaderArray *) 0 ;
    
    arg1 = (_CL_p_p_lucene__index__IndexReaderArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_p_lucene__index__IndexReaderArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_p_lucene__index__IndexReaderArray *arg1 = (_CL_p_p_lucene__index__IndexReaderArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_p_lucene__index__IndexReaderArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__index__IndexReaderArray_init(void * jarg1, int jarg2) {
    _CL_p_p_lucene__index__IndexReaderArray *arg1 = (_CL_p_p_lucene__index__IndexReaderArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_p_lucene__index__IndexReaderArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp__CL_p_p_lucene__index__IndexReaderArray_get(void * jarg1, int jarg2) {
    void * jresult = 0 ;
    _CL_p_p_lucene__index__IndexReaderArray *arg1 = (_CL_p_p_lucene__index__IndexReaderArray *) 0 ;
    int arg2 ;
    lucene::index::IndexReader *result;
    
    arg1 = (_CL_p_p_lucene__index__IndexReaderArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = (lucene::index::IndexReader *)((_CL_p_p_lucene__index__IndexReaderArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__index__IndexReaderArray_set(void * jarg1, void * jarg2, int jarg3) {
    _CL_p_p_lucene__index__IndexReaderArray *arg1 = (_CL_p_p_lucene__index__IndexReaderArray *) 0 ;
    lucene::index::IndexReader *arg2 = (lucene::index::IndexReader *) 0 ;
    int arg3 ;
    
    arg1 = (_CL_p_p_lucene__index__IndexReaderArray *)jarg1; 
    arg2 = (lucene::index::IndexReader *)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_p_lucene__index__TermFreqVectorArray() {
    void * jresult = 0 ;
    _CL_p_p_lucene__index__TermFreqVectorArray *result;
    
    {
        try {
            result = (_CL_p_p_lucene__index__TermFreqVectorArray *)_CLNEW _CL_p_p_lucene__index__TermFreqVectorArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_p_lucene__index__TermFreqVectorArray(void * jarg1) {
    _CL_p_p_lucene__index__TermFreqVectorArray *arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *) 0 ;
    
    arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_p_lucene__index__TermFreqVectorArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_p_lucene__index__TermFreqVectorArray *arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__index__TermFreqVectorArray_init(void * jarg1, int jarg2) {
    _CL_p_p_lucene__index__TermFreqVectorArray *arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp__CL_p_p_lucene__index__TermFreqVectorArray_get(void * jarg1, int jarg2) {
    void * jresult = 0 ;
    _CL_p_p_lucene__index__TermFreqVectorArray *arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *) 0 ;
    int arg2 ;
    lucene::index::TermFreqVector *result;
    
    arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = (lucene::index::TermFreqVector *)((_CL_p_p_lucene__index__TermFreqVectorArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__index__TermFreqVectorArray_set(void * jarg1, void * jarg2, int jarg3) {
    _CL_p_p_lucene__index__TermFreqVectorArray *arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *) 0 ;
    lucene::index::TermFreqVector *arg2 = (lucene::index::TermFreqVector *) 0 ;
    int arg3 ;
    
    arg1 = (_CL_p_p_lucene__index__TermFreqVectorArray *)jarg1; 
    arg2 = (lucene::index::TermFreqVector *)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_p_lucene__search__SortFieldArray() {
    void * jresult = 0 ;
    _CL_p_p_lucene__search__SortFieldArray *result;
    
    {
        try {
            result = (_CL_p_p_lucene__search__SortFieldArray *)_CLNEW _CL_p_p_lucene__search__SortFieldArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_p_lucene__search__SortFieldArray(void * jarg1) {
    _CL_p_p_lucene__search__SortFieldArray *arg1 = (_CL_p_p_lucene__search__SortFieldArray *) 0 ;
    
    arg1 = (_CL_p_p_lucene__search__SortFieldArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_p_lucene__search__SortFieldArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_p_lucene__search__SortFieldArray *arg1 = (_CL_p_p_lucene__search__SortFieldArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_p_lucene__search__SortFieldArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__search__SortFieldArray_init(void * jarg1, int jarg2) {
    _CL_p_p_lucene__search__SortFieldArray *arg1 = (_CL_p_p_lucene__search__SortFieldArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_p_lucene__search__SortFieldArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp__CL_p_p_lucene__search__SortFieldArray_get(void * jarg1, int jarg2) {
    void * jresult = 0 ;
    _CL_p_p_lucene__search__SortFieldArray *arg1 = (_CL_p_p_lucene__search__SortFieldArray *) 0 ;
    int arg2 ;
    lucene::search::SortField *result;
    
    arg1 = (_CL_p_p_lucene__search__SortFieldArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = (lucene::search::SortField *)((_CL_p_p_lucene__search__SortFieldArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__search__SortFieldArray_set(void * jarg1, void * jarg2, int jarg3) {
    _CL_p_p_lucene__search__SortFieldArray *arg1 = (_CL_p_p_lucene__search__SortFieldArray *) 0 ;
    lucene::search::SortField *arg2 = (lucene::search::SortField *) 0 ;
    int arg3 ;
    
    arg1 = (_CL_p_p_lucene__search__SortFieldArray *)jarg1; 
    arg2 = (lucene::search::SortField *)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new__CL_p_p_lucene__search__SearchableArray() {
    void * jresult = 0 ;
    _CL_p_p_lucene__search__SearchableArray *result;
    
    {
        try {
            result = (_CL_p_p_lucene__search__SearchableArray *)_CLNEW _CL_p_p_lucene__search__SearchableArray();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete__CL_p_p_lucene__search__SearchableArray(void * jarg1) {
    _CL_p_p_lucene__search__SearchableArray *arg1 = (_CL_p_p_lucene__search__SearchableArray *) 0 ;
    
    arg1 = (_CL_p_p_lucene__search__SearchableArray *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT int SWIGSTDCALL CSharp__CL_p_p_lucene__search__SearchableArray_length(void * jarg1) {
    int jresult = 0 ;
    _CL_p_p_lucene__search__SearchableArray *arg1 = (_CL_p_p_lucene__search__SearchableArray *) 0 ;
    int result;
    
    arg1 = (_CL_p_p_lucene__search__SearchableArray *)jarg1; 
    {
        try {
            result = (int)(arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__search__SearchableArray_init(void * jarg1, int jarg2) {
    _CL_p_p_lucene__search__SearchableArray *arg1 = (_CL_p_p_lucene__search__SearchableArray *) 0 ;
    int arg2 ;
    
    arg1 = (_CL_p_p_lucene__search__SearchableArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            (arg1)->init(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp__CL_p_p_lucene__search__SearchableArray_get(void * jarg1, int jarg2) {
    void * jresult = 0 ;
    _CL_p_p_lucene__search__SearchableArray *arg1 = (_CL_p_p_lucene__search__SearchableArray *) 0 ;
    int arg2 ;
    lucene::search::Searchable *result;
    
    arg1 = (_CL_p_p_lucene__search__SearchableArray *)jarg1; 
    arg2 = (int)jarg2; 
    {
        try {
            result = (lucene::search::Searchable *)((_CL_p_p_lucene__search__SearchableArray const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp__CL_p_p_lucene__search__SearchableArray_set(void * jarg1, void * jarg2, int jarg3) {
    _CL_p_p_lucene__search__SearchableArray *arg1 = (_CL_p_p_lucene__search__SearchableArray *) 0 ;
    lucene::search::Searchable *arg2 = (lucene::search::Searchable *) 0 ;
    int arg3 ;
    
    arg1 = (_CL_p_p_lucene__search__SearchableArray *)jarg1; 
    arg2 = (lucene::search::Searchable *)jarg2; 
    arg3 = (int)jarg3; 
    {
        try {
            (arg1)->set(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned long SWIGSTDCALL CSharp_lucene_utf8towc(void * jarg1, char * jarg2, unsigned long jarg3) {
    unsigned long jresult = 0 ;
    wchar_t *arg1 = (wchar_t *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    size_t result;
    
    arg1 = (wchar_t *)jarg1; 
    arg2 = jarg2; 
    arg3 = (size_t)jarg3; 
    {
        try {
            result = lucene_utf8towc(arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned long SWIGSTDCALL CSharp_lucene_utf8towcs(void * jarg1, char * jarg2, unsigned long jarg3) {
    unsigned long jresult = 0 ;
    wchar_t *arg1 = (wchar_t *) 0 ;
    char *arg2 = (char *) 0 ;
    size_t arg3 ;
    size_t result;
    
    arg1 = (wchar_t *)jarg1; 
    arg2 = jarg2; 
    arg3 = (size_t)jarg3; 
    {
        try {
            result = lucene_utf8towcs(arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned long SWIGSTDCALL CSharp_lucene_wctoutf8(char * jarg1, void * jarg2) {
    unsigned long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    wchar_t arg2 ;
    size_t result;
    wchar_t const *argp2 ;
    
    arg1 = jarg1; 
    argp2 = (wchar_t *)jarg2; 
    if (!argp2) {
        SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null wchar_t const", 0);
        return 0;
    }
    arg2 = *argp2; 
    {
        try {
            result = lucene_wctoutf8(arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned long SWIGSTDCALL CSharp_lucene_wcstoutf8(char * jarg1, void * jarg2, unsigned long jarg3) {
    unsigned long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    wchar_t *arg2 = (wchar_t *) 0 ;
    size_t arg3 ;
    size_t result;
    
    arg1 = jarg1; 
    arg2 = (wchar_t *)jarg2; 
    arg3 = (size_t)jarg3; 
    {
        try {
            result = lucene_wcstoutf8(arg1,(wchar_t const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_get_READER_ENCODING_UCS2() {
    char * jresult = 0 ;
    char *result;
    
    {
        try {
            result = (char *) "UCS2_LITTLE";
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Reader_close(void * jarg1) {
    lucene::util::Reader *arg1 = (lucene::util::Reader *) 0 ;
    
    arg1 = (lucene::util::Reader *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Reader(void * jarg1) {
    lucene::util::Reader *arg1 = (lucene::util::Reader *) 0 ;
    
    arg1 = (lucene::util::Reader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StringReader(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::StringReader *result;
    
    arg1 = jarg1; 
    {
        try {
            arg1= lucenestrdup(arg1 );  	  result = (lucene::util::StringReader *)_CLNEW lucene::util::StringReader((char const *)arg1);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_StringReader(void * jarg1) {
    lucene::util::StringReader *arg1 = (lucene::util::StringReader *) 0 ;
    
    arg1 = (lucene::util::StringReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileReader__SWIG_0(char * jarg1, char * jarg2, long jarg3, long jarg4) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t arg3 ;
    int32_t arg4 ;
    lucene::util::FileReader *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = (int32_t)jarg3; 
    arg4 = (int32_t)jarg4; 
    {
        try {
            result = (lucene::util::FileReader *)_CLNEW lucene::util::FileReader((char const *)arg1,(char const *)arg2,arg3,arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileReader__SWIG_1(char * jarg1, char * jarg2, long jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t arg3 ;
    lucene::util::FileReader *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            result = (lucene::util::FileReader *)_CLNEW lucene::util::FileReader((char const *)arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileReader__SWIG_2(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::util::FileReader *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::util::FileReader *)_CLNEW lucene::util::FileReader((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_FileReader__SWIG_3(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::FileReader *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::util::FileReader *)_CLNEW lucene::util::FileReader((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_FileReader(void * jarg1) {
    lucene::util::FileReader *arg1 = (lucene::util::FileReader *) 0 ;
    
    arg1 = (lucene::util::FileReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitSet(long jarg1) {
    void * jresult = 0 ;
    int32_t arg1 ;
    lucene::util::BitSet *result;
    
    arg1 = (int32_t)jarg1; 
    {
        try {
            result = (lucene::util::BitSet *)_CLNEW lucene::util::BitSet(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_BitSet(void * jarg1) {
    lucene::util::BitSet *arg1 = (lucene::util::BitSet *) 0 ;
    
    arg1 = (lucene::util::BitSet *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitSet_get(void * jarg1, long jarg2) {
    unsigned int jresult = 0 ;
    lucene::util::BitSet *arg1 = (lucene::util::BitSet *) 0 ;
    int32_t arg2 ;
    bool result;
    
    arg1 = (lucene::util::BitSet *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (bool)((lucene::util::BitSet const *)arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_BitSet_set(void * jarg1, long jarg2) {
    lucene::util::BitSet *arg1 = (lucene::util::BitSet *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::util::BitSet *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->set(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_BitSet_size(void * jarg1) {
    long jresult = 0 ;
    lucene::util::BitSet *arg1 = (lucene::util::BitSet *) 0 ;
    int32_t result;
    
    arg1 = (lucene::util::BitSet *)jarg1; 
    {
        try {
            result = ((lucene::util::BitSet const *)arg1)->size();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitVector__SWIG_0(long jarg1) {
    void * jresult = 0 ;
    int32_t arg1 ;
    lucene::util::BitVector *result;
    
    arg1 = (int32_t)jarg1; 
    {
        try {
            result = (lucene::util::BitVector *)_CLNEW lucene::util::BitVector(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_BitVector(void * jarg1) {
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_BitVector__SWIG_1(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::util::BitVector *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::util::BitVector *)_CLNEW lucene::util::BitVector(arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_BitVector_set(void * jarg1, long jarg2) {
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->set(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_BitVector_clear(void * jarg1, long jarg2) {
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->clear(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_BitVector_get(void * jarg1, long jarg2) {
    unsigned int jresult = 0 ;
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    int32_t arg2 ;
    bool result;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (bool)(arg1)->get(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_BitVector_size(void * jarg1) {
    long jresult = 0 ;
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    int32_t result;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    {
        try {
            result = (arg1)->size();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_BitVector_count(void * jarg1) {
    long jresult = 0 ;
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    int32_t result;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    {
        try {
            result = (arg1)->count();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_BitVector_write(void * jarg1, void * jarg2, char * jarg3) {
    lucene::util::BitVector *arg1 = (lucene::util::BitVector *) 0 ;
    lucene::store::Directory *arg2 = (lucene::store::Directory *) 0 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (lucene::util::BitVector *)jarg1; 
    arg2 = (lucene::store::Directory *)jarg2; 
    arg3 = jarg3; 
    {
        try {
            (arg1)->write(arg2,(char const *)arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_0(char * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    bool arg4 ;
    bool arg5 ;
    bool arg6 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    arg6 = jarg6 ? true : false; 
    {
        try {
            result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,(char const *)arg2,arg3,arg4,arg5,arg6);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_1(char * jarg1, char * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    bool arg4 ;
    bool arg5 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    {
        try {
            result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,(char const *)arg2,arg3,arg4,arg5);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_2(char * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5, unsigned int jarg6) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    bool arg3 ;
    bool arg4 ;
    bool arg5 ;
    bool arg6 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    arg6 = jarg6 ? true : false; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,arg2,arg3,arg4,arg5,arg6);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_3(char * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4, unsigned int jarg5) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    bool arg3 ;
    bool arg4 ;
    bool arg5 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    arg5 = jarg5 ? true : false; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,arg2,arg3,arg4,arg5);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_4(char * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    bool arg3 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,arg2,arg3);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Field__SWIG_5(char * jarg1, void * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)_CLNEW lucene::document::Field((char const *)arg1,arg2);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Field(void * jarg1) {
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_Keyword(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::Keyword((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_UnIndexed(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::UnIndexed((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_Text__SWIG_0(char * jarg1, char * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::Text((char const *)arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_Text__SWIG_1(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::Text((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_UnStored__SWIG_0(char * jarg1, char * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::UnStored((char const *)arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_UnStored__SWIG_1(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::document::Field *)lucene::document::Field::UnStored((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_Text__SWIG_2(char * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    bool arg3 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)lucene::document::Field::Text((char const *)arg1,arg2,arg3);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_Text__SWIG_3(char * jarg1, void * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    lucene::document::Field *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    {
        try {
            arg2->__cl_addref();  	result = (lucene::document::Field *)lucene::document::Field::Text((char const *)arg1,arg2);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Field_name(void * jarg1) {
    char * jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    char *result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (char *)(arg1)->name();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Field_stringValue(void * jarg1) {
    char * jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    char *result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (char *)(arg1)->stringValue();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Field_readerValue(void * jarg1) {
    void * jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    lucene::util::Reader *result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (lucene::util::Reader *)(arg1)->readerValue();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Field_isStored(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    bool result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (bool)(arg1)->isStored();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Field_isIndexed(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    bool result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (bool)(arg1)->isIndexed();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Field_isTokenized(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    bool result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (bool)(arg1)->isTokenized();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Field_isTermVectorStored(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    bool result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (bool)(arg1)->isTermVectorStored();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Field_getBoost(void * jarg1) {
    double jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    float_t result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (arg1)->getBoost();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Field_setBoost(void * jarg1, double jarg2) {
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    float_t arg2 ;
    
    arg1 = (lucene::document::Field *)jarg1; 
    arg2 = (float_t)jarg2; 
    {
        try {
            (arg1)->setBoost(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Field_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::document::Field *arg1 = (lucene::document::Field *) 0 ;
    char *result;
    
    arg1 = (lucene::document::Field *)jarg1; 
    {
        try {
            result = (char *)(arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_DateField(void * jarg1) {
    lucene::document::DateField *arg1 = (lucene::document::DateField *) 0 ;
    
    arg1 = (lucene::document::DateField *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_DateField_timeToString(long long jarg1) {
    char * jresult = 0 ;
    int64_t arg1 ;
    char *result;
    
    arg1 = (int64_t)jarg1; 
    {
        try {
            result = (char *)lucene::document::DateField::timeToString(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_DateField_stringToTime(char * jarg1) {
    long long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t result;
    
    arg1 = jarg1; 
    {
        try {
            result = lucene::document::DateField::stringToTime((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_DateField() {
    void * jresult = 0 ;
    lucene::document::DateField *result;
    
    {
        try {
            result = (lucene::document::DateField *)_CLNEW lucene::document::DateField();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_DocumentFieldEnumeration(void * jarg1) {
    lucene::document::DocumentFieldEnumeration *arg1 = (lucene::document::DocumentFieldEnumeration *) 0 ;
    
    arg1 = (lucene::document::DocumentFieldEnumeration *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_DocumentFieldEnumeration_hasMoreElements(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::document::DocumentFieldEnumeration *arg1 = (lucene::document::DocumentFieldEnumeration *) 0 ;
    bool result;
    
    arg1 = (lucene::document::DocumentFieldEnumeration *)jarg1; 
    {
        try {
            result = (bool)((lucene::document::DocumentFieldEnumeration const *)arg1)->hasMoreElements();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_DocumentFieldEnumeration_nextElement(void * jarg1) {
    void * jresult = 0 ;
    lucene::document::DocumentFieldEnumeration *arg1 = (lucene::document::DocumentFieldEnumeration *) 0 ;
    lucene::document::Field *result;
    
    arg1 = (lucene::document::DocumentFieldEnumeration *)jarg1; 
    {
        try {
            result = (lucene::document::Field *)(arg1)->nextElement();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Document() {
    void * jresult = 0 ;
    lucene::document::Document *result;
    
    {
        try {
            result = (lucene::document::Document *)_CLNEW lucene::document::Document();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Document(void * jarg1) {
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    
    arg1 = (lucene::document::Document *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Document_add(void * jarg1, void * jarg2) {
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    lucene::document::Field *arg2 = 0 ;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = (lucene::document::Field *)jarg2;
    if(!arg2) {
        SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "lucene::document::Field & type is null", 0);
        return ;
    } 
    {
        try {
            arg2->__cl_addref();  	(arg1)->add(*arg2);
        }_CATCHALL(,);   
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Document_getField(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Field *result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::document::Field *)((lucene::document::Document const *)arg1)->getField((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Document_get(void * jarg1, char * jarg2) {
    char * jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (char *)((lucene::document::Document const *)arg1)->get((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Document_fields(void * jarg1) {
    void * jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    lucene::document::DocumentFieldEnumeration *result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    {
        try {
            result = (lucene::document::DocumentFieldEnumeration *)((lucene::document::Document const *)arg1)->fields();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Document_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    {
        try {
            result = (char *)((lucene::document::Document const *)arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Document_setBoost(void * jarg1, double jarg2) {
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    float_t arg2 ;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = (float_t)jarg2; 
    {
        try {
            (arg1)->setBoost(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT double SWIGSTDCALL CSharp_Document_getBoost(void * jarg1) {
    double jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    float_t result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    {
        try {
            result = ((lucene::document::Document const *)arg1)->getBoost();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Document_removeField(void * jarg1, char * jarg2) {
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->removeField((char const *)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Document_removeFields(void * jarg1, char * jarg2) {
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->removeFields((char const *)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void* SWIGSTDCALL CSharp_Document_getValues(void * jarg1, char * jarg2) {
    void* jresult = 0 ;
    lucene::document::Document *arg1 = (lucene::document::Document *) 0 ;
    char *arg2 = (char *) 0 ;
    char **result;
    
    arg1 = (lucene::document::Document *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (char **)(arg1)->getValues((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_InputStream(void * jarg1) {
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp_InputStream_readByte(void * jarg1) {
    unsigned char jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    uint8_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->readByte();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_InputStream_readInt(void * jarg1) {
    long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int32_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->readInt();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_InputStream_readVInt(void * jarg1) {
    long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int32_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->readVInt();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_InputStream_readLong(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->readLong();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_InputStream_readVLong(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->readVLong();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_InputStream_close(void * jarg1) {
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long long SWIGSTDCALL CSharp_InputStream_getFilePointer(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->getFilePointer();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_InputStream_seek(void * jarg1, long long jarg2) {
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int64_t arg2 ;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    arg2 = (int64_t)jarg2; 
    {
        try {
            (arg1)->seek(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long long SWIGSTDCALL CSharp_InputStream_length(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::InputStream *arg1 = (lucene::store::InputStream *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::InputStream *)jarg1; 
    {
        try {
            result = (arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_OutputStream(void * jarg1) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeByte(void * jarg1, unsigned char jarg2) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    uint8_t arg2 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = (uint8_t)jarg2; 
    {
        try {
            (arg1)->writeByte(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeBytes(void * jarg1, void* jarg2, long jarg3) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    uint8_t *arg2 = (uint8_t *) 0 ;
    int32_t arg3 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    
    _CL_p_uint8_tArray* _obj_arg2 =(_CL_p_uint8_tArray*)jarg2;
    arg2 = _obj_arg2->array;
    
    arg3 = (int32_t)jarg3; 
    {
        try {
            (arg1)->writeBytes((uint8_t const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeInt(void * jarg1, long jarg2) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->writeInt(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeVInt(void * jarg1, long jarg2) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->writeVInt(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeLong(void * jarg1, long long jarg2) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    int64_t arg2 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = (int64_t)jarg2; 
    {
        try {
            (arg1)->writeLong(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeVLong(void * jarg1, long long jarg2) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    int64_t arg2 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = (int64_t)jarg2; 
    {
        try {
            (arg1)->writeVLong(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeString(void * jarg1, char * jarg2, long jarg3) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t arg3 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            (arg1)->writeString((char const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_writeChars(void * jarg1, char * jarg2, long jarg3, long jarg4) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t arg3 ;
    int32_t arg4 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    arg2 = jarg2; 
    arg3 = (int32_t)jarg3; 
    arg4 = (int32_t)jarg4; 
    {
        try {
            (arg1)->writeChars((char const *)arg2,arg3,arg4);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_OutputStream_close(void * jarg1) {
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long long SWIGSTDCALL CSharp_OutputStream_getFilePointer(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::OutputStream *arg1 = (lucene::store::OutputStream *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::OutputStream *)jarg1; 
    {
        try {
            result = (arg1)->getFilePointer();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Directory(void * jarg1) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void* SWIGSTDCALL CSharp_Directory_list(void * jarg1) {
    void* jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char **result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (char **)((lucene::store::Directory const *)arg1)->list();
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Directory_fileExists(void * jarg1, char * jarg2) {
    unsigned int jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    bool result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (bool)((lucene::store::Directory const *)arg1)->fileExists((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_Directory_fileModified(void * jarg1, char * jarg2) {
    long long jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = ((lucene::store::Directory const *)arg1)->fileModified((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_Directory_fileLength(void * jarg1, char * jarg2) {
    long long jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = ((lucene::store::Directory const *)arg1)->fileLength((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Directory_openFile(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::store::InputStream *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::store::InputStream *)(arg1)->openFile((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Directory_touchFile(void * jarg1, char * jarg2) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->touchFile((char const *)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Directory_deleteFile__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            (arg1)->deleteFile((char const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Directory_deleteFile__SWIG_1(void * jarg1, char * jarg2) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->deleteFile((char const *)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Directory_renameFile(void * jarg1, char * jarg2, char * jarg3) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    char *arg3 = (char *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3; 
    {
        try {
            (arg1)->renameFile((char const *)arg2,(char const *)arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Directory_createFile(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::store::OutputStream *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::store::OutputStream *)(arg1)->createFile((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Directory_close(void * jarg1) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_FSDirectory(void * jarg1) {
    lucene::store::FSDirectory *arg1 = (lucene::store::FSDirectory *) 0 ;
    
    arg1 = (lucene::store::FSDirectory *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_FSDirectory_getDirName(void * jarg1) {
    char * jresult = 0 ;
    lucene::store::FSDirectory *arg1 = (lucene::store::FSDirectory *) 0 ;
    char *result;
    
    arg1 = (lucene::store::FSDirectory *)jarg1; 
    {
        try {
            result = (char *)((lucene::store::FSDirectory const *)arg1)->getDirName();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_FSDirectory_getDirectory(char * jarg1, unsigned int jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    bool arg2 ;
    lucene::store::FSDirectory *result;
    
    arg1 = jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (lucene::store::FSDirectory *)lucene::store::FSDirectory::getDirectory((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_FSDirectory_fileModified__SWIG_1(char * jarg1, char * jarg2) {
    long long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    int64_t result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = lucene::store::FSDirectory::fileModified((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RAMOutputStream(void * jarg1) {
    lucene::store::RAMOutputStream *arg1 = (lucene::store::RAMOutputStream *) 0 ;
    
    arg1 = (lucene::store::RAMOutputStream *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_RAMOutputStream_reset(void * jarg1) {
    lucene::store::RAMOutputStream *arg1 = (lucene::store::RAMOutputStream *) 0 ;
    
    arg1 = (lucene::store::RAMOutputStream *)jarg1; 
    {
        try {
            (arg1)->reset();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_RAMOutputStream_writeTo(void * jarg1, void * jarg2) {
    lucene::store::RAMOutputStream *arg1 = (lucene::store::RAMOutputStream *) 0 ;
    lucene::store::OutputStream *arg2 = (lucene::store::OutputStream *) 0 ;
    
    arg1 = (lucene::store::RAMOutputStream *)jarg1; 
    arg2 = (lucene::store::OutputStream *)jarg2; 
    {
        try {
            (arg1)->writeTo(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RAMInputStream(void * jarg1) {
    lucene::store::RAMInputStream *arg1 = (lucene::store::RAMInputStream *) 0 ;
    
    arg1 = (lucene::store::RAMInputStream *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RAMDirectory__SWIG_0() {
    void * jresult = 0 ;
    lucene::store::RAMDirectory *result;
    
    {
        try {
            result = (lucene::store::RAMDirectory *)_CLNEW lucene::store::RAMDirectory();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RAMDirectory(void * jarg1) {
    lucene::store::RAMDirectory *arg1 = (lucene::store::RAMDirectory *) 0 ;
    
    arg1 = (lucene::store::RAMDirectory *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RAMDirectory__SWIG_1(void * jarg1) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::store::RAMDirectory *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (lucene::store::RAMDirectory *)_CLNEW lucene::store::RAMDirectory(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RAMDirectory__SWIG_2(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::store::RAMDirectory *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::store::RAMDirectory *)_CLNEW lucene::store::RAMDirectory((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Token(void * jarg1) {
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Token__SWIG_0(char * jarg1, long jarg2, long jarg3, char * jarg4) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int32_t arg2 ;
    int32_t arg3 ;
    char *arg4 = (char *) 0 ;
    lucene::analysis::Token *result;
    
    arg1 = jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = (int32_t)jarg3; 
    arg4 = jarg4; 
    {
        try {
            result = (lucene::analysis::Token *)_CLNEW lucene::analysis::Token((char const *)arg1,arg2,arg3,(char const *)arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Token__SWIG_1(char * jarg1, long jarg2, long jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int32_t arg2 ;
    int32_t arg3 ;
    lucene::analysis::Token *result;
    
    arg1 = jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            result = (lucene::analysis::Token *)_CLNEW lucene::analysis::Token((char const *)arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Token_setPositionIncrement(void * jarg1, long jarg2) {
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setPositionIncrement(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_Token_getPositionIncrement(void * jarg1) {
    long jresult = 0 ;
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    int32_t result;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            result = (arg1)->getPositionIncrement();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Token_termText(void * jarg1) {
    char * jresult = 0 ;
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    char *result;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            result = (char *)(arg1)->termText();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_Token_startOffset(void * jarg1) {
    long jresult = 0 ;
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    int32_t result;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            result = ((lucene::analysis::Token const *)arg1)->startOffset();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_Token_endOffset(void * jarg1) {
    long jresult = 0 ;
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    int32_t result;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            result = ((lucene::analysis::Token const *)arg1)->endOffset();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Token_type(void * jarg1) {
    char * jresult = 0 ;
    lucene::analysis::Token *arg1 = (lucene::analysis::Token *) 0 ;
    char *result;
    
    arg1 = (lucene::analysis::Token *)jarg1; 
    {
        try {
            result = (char *)((lucene::analysis::Token const *)arg1)->type();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_TokenStream_close(void * jarg1) {
    lucene::analysis::TokenStream *arg1 = (lucene::analysis::TokenStream *) 0 ;
    
    arg1 = (lucene::analysis::TokenStream *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TokenStream(void * jarg1) {
    lucene::analysis::TokenStream *arg1 = (lucene::analysis::TokenStream *) 0 ;
    
    arg1 = (lucene::analysis::TokenStream *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_TokenStream_next(void * jarg1) {
    void * jresult = 0 ;
    lucene::analysis::TokenStream *arg1 = (lucene::analysis::TokenStream *) 0 ;
    lucene::analysis::Token *result;
    
    arg1 = (lucene::analysis::TokenStream *)jarg1; 
    {
        try {
            result = (lucene::analysis::Token *)(arg1)->next();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Analyzer_tokenStream(void * jarg1, char * jarg2, void * jarg3) {
    void * jresult = 0 ;
    lucene::analysis::Analyzer *arg1 = (lucene::analysis::Analyzer *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::util::Reader *arg3 = (lucene::util::Reader *) 0 ;
    lucene::analysis::TokenStream *result;
    
    arg1 = (lucene::analysis::Analyzer *)jarg1; 
    arg2 = jarg2; 
    arg3 = (lucene::util::Reader *)jarg3; 
    {
        try {
            result = (lucene::analysis::TokenStream *)(arg1)->tokenStream((char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Analyzer(void * jarg1) {
    lucene::analysis::Analyzer *arg1 = (lucene::analysis::Analyzer *) 0 ;
    
    arg1 = (lucene::analysis::Analyzer *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_WhitespaceAnalyzer(void * jarg1) {
    lucene::analysis::WhitespaceAnalyzer *arg1 = (lucene::analysis::WhitespaceAnalyzer *) 0 ;
    
    arg1 = (lucene::analysis::WhitespaceAnalyzer *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_WhitespaceAnalyzer() {
    void * jresult = 0 ;
    lucene::analysis::WhitespaceAnalyzer *result;
    
    {
        try {
            result = (lucene::analysis::WhitespaceAnalyzer *)_CLNEW lucene::analysis::WhitespaceAnalyzer();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SimpleAnalyzer(void * jarg1) {
    lucene::analysis::SimpleAnalyzer *arg1 = (lucene::analysis::SimpleAnalyzer *) 0 ;
    
    arg1 = (lucene::analysis::SimpleAnalyzer *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SimpleAnalyzer() {
    void * jresult = 0 ;
    lucene::analysis::SimpleAnalyzer *result;
    
    {
        try {
            result = (lucene::analysis::SimpleAnalyzer *)_CLNEW lucene::analysis::SimpleAnalyzer();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StopAnalyzer__SWIG_0() {
    void * jresult = 0 ;
    lucene::analysis::StopAnalyzer *result;
    
    {
        try {
            result = (lucene::analysis::StopAnalyzer *)_CLNEW lucene::analysis::StopAnalyzer();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_StopAnalyzer(void * jarg1) {
    lucene::analysis::StopAnalyzer *arg1 = (lucene::analysis::StopAnalyzer *) 0 ;
    
    arg1 = (lucene::analysis::StopAnalyzer *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StopAnalyzer__SWIG_1(void* jarg1) {
    void * jresult = 0 ;
    char **arg1 = (char **) 0 ;
    lucene::analysis::StopAnalyzer *result;
    
    
    _CL_p_p_charArray* _obj_arg1 =(_CL_p_p_charArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try {
            result = (lucene::analysis::StopAnalyzer *)_CLNEW lucene::analysis::StopAnalyzer(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_PerFieldAnalyzerWrapper(void * jarg1) {
    void * jresult = 0 ;
    lucene::analysis::Analyzer *arg1 = (lucene::analysis::Analyzer *) 0 ;
    lucene::analysis::PerFieldAnalyzerWrapper *result;
    
    arg1 = (lucene::analysis::Analyzer *)jarg1; 
    {
        try {
            result = (lucene::analysis::PerFieldAnalyzerWrapper *)_CLNEW lucene::analysis::PerFieldAnalyzerWrapper(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_PerFieldAnalyzerWrapper(void * jarg1) {
    lucene::analysis::PerFieldAnalyzerWrapper *arg1 = (lucene::analysis::PerFieldAnalyzerWrapper *) 0 ;
    
    arg1 = (lucene::analysis::PerFieldAnalyzerWrapper *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_PerFieldAnalyzerWrapper_addAnalyzer(void * jarg1, char * jarg2, void * jarg3) {
    lucene::analysis::PerFieldAnalyzerWrapper *arg1 = (lucene::analysis::PerFieldAnalyzerWrapper *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::analysis::Analyzer *arg3 = (lucene::analysis::Analyzer *) 0 ;
    
    arg1 = (lucene::analysis::PerFieldAnalyzerWrapper *)jarg1; 
    arg2 = jarg2; 
    arg3 = (lucene::analysis::Analyzer *)jarg3; 
    {
        try {
            (arg1)->addAnalyzer((char const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StandardAnalyzer__SWIG_0() {
    void * jresult = 0 ;
    lucene::analysis::standard::StandardAnalyzer *result;
    
    {
        try {
            result = (lucene::analysis::standard::StandardAnalyzer *)_CLNEW lucene::analysis::standard::StandardAnalyzer();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_StandardAnalyzer__SWIG_1(void* jarg1) {
    void * jresult = 0 ;
    char **arg1 = (char **) 0 ;
    lucene::analysis::standard::StandardAnalyzer *result;
    
    
    _CL_p_p_charArray* _obj_arg1 =(_CL_p_p_charArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try {
            result = (lucene::analysis::standard::StandardAnalyzer *)_CLNEW lucene::analysis::standard::StandardAnalyzer(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_StandardAnalyzer(void * jarg1) {
    lucene::analysis::standard::StandardAnalyzer *arg1 = (lucene::analysis::standard::StandardAnalyzer *) 0 ;
    
    arg1 = (lucene::analysis::standard::StandardAnalyzer *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SegmentInfo_getDir(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    lucene::store::Directory *result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            result = (lucene::store::Directory *)((lucene::index::SegmentInfo const *)arg1)->getDir();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_SegmentInfo_name(void * jarg1, char * jarg2) {
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    char *arg2 ;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    arg2 = jarg2; 
    {
        if (arg2) strncpy(arg1->name,arg2,CL_MAX_DIR);
        else arg1->name[0] = 0;
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_get_SegmentInfo_name(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    char *result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    result = (char *)(char *) ((arg1)->name);
    
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SegmentInfo_docCount(void * jarg1) {
    long jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    result = (int32_t) ((arg1)->docCount);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentInfo(char * jarg1, long jarg2, void * jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int32_t arg2 ;
    lucene::store::Directory *arg3 = (lucene::store::Directory *) 0 ;
    lucene::index::SegmentInfo *result;
    
    arg1 = jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = (lucene::store::Directory *)jarg3; 
    {
        try {
            result = (lucene::index::SegmentInfo *)_CLNEW lucene::index::SegmentInfo((char const *)arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SegmentInfo(void * jarg1) {
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentInfos__SWIG_0(unsigned int jarg1) {
    void * jresult = 0 ;
    bool arg1 ;
    lucene::index::SegmentInfos *result;
    
    arg1 = jarg1 ? true : false; 
    {
        try {
            result = (lucene::index::SegmentInfos *)_CLNEW lucene::index::SegmentInfos(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentInfos__SWIG_1() {
    void * jresult = 0 ;
    lucene::index::SegmentInfos *result;
    
    {
        try {
            result = (lucene::index::SegmentInfos *)_CLNEW lucene::index::SegmentInfos();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SegmentInfos(void * jarg1) {
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentInfos_clearto(void * jarg1, long jarg2) {
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->clearto(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_SegmentInfos_size(void * jarg1) {
    long jresult = 0 ;
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    {
        try {
            result = (arg1)->size();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentInfos_add(void * jarg1, void * jarg2) {
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    lucene::index::SegmentInfo *arg2 = (lucene::index::SegmentInfo *) 0 ;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (lucene::index::SegmentInfo *)jarg2; 
    {
        try {
            (arg1)->add(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SegmentInfos_info(void * jarg1, long jarg2) {
    void * jresult = 0 ;
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    int32_t arg2 ;
    lucene::index::SegmentInfo *result;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::index::SegmentInfo *)(arg1)->info(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_SegmentInfos_getVersion(void * jarg1) {
    long long jresult = 0 ;
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    int64_t result;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    {
        try {
            result = (arg1)->getVersion();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_SegmentInfos_readCurrentVersion(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = lucene::index::SegmentInfos::readCurrentVersion(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentInfos_read(void * jarg1, void * jarg2) {
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    lucene::store::Directory *arg2 = (lucene::store::Directory *) 0 ;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (lucene::store::Directory *)jarg2; 
    {
        try {
            (arg1)->read(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentInfos_write(void * jarg1, void * jarg2) {
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    lucene::store::Directory *arg2 = (lucene::store::Directory *) 0 ;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (lucene::store::Directory *)jarg2; 
    {
        try {
            (arg1)->write(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Term(char * jarg1, char * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::index::Term *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::index::Term *)_CLNEW lucene::index::Term((char const *)arg1,(char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Term(void * jarg1) {
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Term_field(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    char *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (char *)((lucene::index::Term const *)arg1)->field();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Term_text(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    char *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (char *)((lucene::index::Term const *)arg1)->text();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_Term_compareTo(void * jarg1, void * jarg2) {
    long jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = ((lucene::index::Term const *)arg1)->compareTo((lucene::index::Term const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Term_equals(void * jarg1, void * jarg2) {
    unsigned int jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    bool result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (bool)((lucene::index::Term const *)arg1)->equals((lucene::index::Term const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Term_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    char *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (char *)((lucene::index::Term const *)arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TermDocs(void * jarg1) {
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_TermDocs_seek__SWIG_0(void * jarg1, void * jarg2) {
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            (arg1)->seek(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_TermDocs_seek__SWIG_1(void * jarg1, void * jarg2) {
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    lucene::index::TermEnum *arg2 = (lucene::index::TermEnum *) 0 ;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    arg2 = (lucene::index::TermEnum *)jarg2; 
    {
        try {
            (arg1)->seek(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermDocs_doc(void * jarg1) {
    long jresult = 0 ;
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    {
        try {
            result = ((lucene::index::TermDocs const *)arg1)->doc();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermDocs_freq(void * jarg1) {
    long jresult = 0 ;
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    {
        try {
            result = ((lucene::index::TermDocs const *)arg1)->freq();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TermDocs_next(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    bool result;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    {
        try {
            result = (bool)(arg1)->next();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TermDocs_skipTo(void * jarg1, long jarg2) {
    unsigned int jresult = 0 ;
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    int32_t arg2 ;
    bool result;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (bool)(arg1)->skipTo(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_TermDocs_close(void * jarg1) {
    lucene::index::TermDocs *arg1 = (lucene::index::TermDocs *) 0 ;
    
    arg1 = (lucene::index::TermDocs *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TermEnum_next(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    bool result;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    {
        try {
            result = (bool)(arg1)->next();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_TermEnum_term(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)(arg1)->term();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermEnum_docFreq(void * jarg1) {
    long jresult = 0 ;
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    {
        try {
            result = ((lucene::index::TermEnum const *)arg1)->docFreq();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_TermEnum_close(void * jarg1) {
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TermEnum(void * jarg1) {
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_TermEnum_skipTo(void * jarg1, void * jarg2) {
    unsigned int jresult = 0 ;
    lucene::index::TermEnum *arg1 = (lucene::index::TermEnum *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    bool result;
    
    arg1 = (lucene::index::TermEnum *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (bool)(arg1)->skipTo(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermPositions_nextPosition(void * jarg1) {
    long jresult = 0 ;
    lucene::index::TermPositions *arg1 = (lucene::index::TermPositions *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermPositions *)jarg1; 
    {
        try {
            result = (arg1)->nextPosition();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TermPositions(void * jarg1) {
    lucene::index::TermPositions *arg1 = (lucene::index::TermPositions *) 0 ;
    
    arg1 = (lucene::index::TermPositions *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TermFreqVector(void * jarg1) {
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_TermFreqVector_getField(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    char *result;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    {
        try {
            result = (char *)(arg1)->getField();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermFreqVector_size(void * jarg1) {
    long jresult = 0 ;
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    {
        try {
            result = (arg1)->size();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_TermFreqVector_getTerms(void * jarg1) {
    void* jresult = 0 ;
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    char **result;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    {
        try {
            result = (char **)(arg1)->getTerms();
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_TermFreqVector_getTermFrequencies(void * jarg1) {
    void* jresult = 0 ;
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    int32_t *result;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    {
        try {
            result = (int32_t *)(arg1)->getTermFrequencies();
            
        }_CATCHALL(0,);
    }
    
    _CL_p_int32_tArray* _obj_result = _CLNEW _CL_p_int32_tArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_TermFreqVector_indexOf(void * jarg1, char * jarg2) {
    long jresult = 0 ;
    lucene::index::TermFreqVector *arg1 = (lucene::index::TermFreqVector *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::TermFreqVector *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (arg1)->indexOf((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_commit(void * jarg1) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            (arg1)->commit();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_undeleteAll(void * jarg1) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            (arg1)->undeleteAll();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void* SWIGSTDCALL CSharp_IndexReader_getFieldNames__SWIG_0(void * jarg1) {
    void* jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    char **result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (char **)(arg1)->getFieldNames();
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_IndexReader_getFieldNames__SWIG_1(void * jarg1, unsigned int jarg2) {
    void* jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    bool arg2 ;
    char **result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (char **)(arg1)->getFieldNames(arg2);
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_IndexReader_getIndexedFieldNames(void * jarg1, unsigned int jarg2) {
    void* jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    bool arg2 ;
    char **result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (char **)(arg1)->getIndexedFieldNames(arg2);
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_charArray* _obj_result = _CLNEW _CL_p_p_charArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_IndexReader_norms(void * jarg1, char * jarg2) {
    void* jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    char *arg2 = (char *) 0 ;
    uint8_t *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (uint8_t *)(arg1)->norms((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    
    _CL_p_uint8_tArray* _obj_result = _CLNEW _CL_p_uint8_tArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_setNorm__SWIG_0(void * jarg1, long jarg2, char * jarg3, double jarg4) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    char *arg3 = (char *) 0 ;
    float_t arg4 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = jarg3; 
    arg4 = (float_t)jarg4; 
    {
        try {
            (arg1)->setNorm(arg2,(char const *)arg3,arg4);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_setNorm__SWIG_1(void * jarg1, long jarg2, char * jarg3, unsigned char jarg4) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    char *arg3 = (char *) 0 ;
    uint8_t arg4 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = jarg3; 
    arg4 = (uint8_t)jarg4; 
    {
        try {
            (arg1)->setNorm(arg2,(char const *)arg3,arg4);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_IndexReader(void * jarg1) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_open__SWIG_0(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::index::IndexReader *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::index::IndexReader *)lucene::index::IndexReader::open((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_open__SWIG_1(void * jarg1, unsigned int jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    bool arg2 ;
    lucene::index::IndexReader *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (lucene::index::IndexReader *)lucene::index::IndexReader::open(arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_open__SWIG_2(void * jarg1) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::index::IndexReader *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (lucene::index::IndexReader *)lucene::index::IndexReader::open(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_IndexReader_lastModified__SWIG_0(char * jarg1) {
    long long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t result;
    
    arg1 = jarg1; 
    {
        try {
            result = lucene::index::IndexReader::lastModified((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_IndexReader_lastModified__SWIG_1(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = lucene::index::IndexReader::lastModified((lucene::store::Directory const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_IndexReader_getCurrentVersion__SWIG_0(void * jarg1) {
    long long jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    int64_t result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = lucene::index::IndexReader::getCurrentVersion(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long long SWIGSTDCALL CSharp_IndexReader_getCurrentVersion__SWIG_1(char * jarg1) {
    long long jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t result;
    
    arg1 = jarg1; 
    {
        try {
            result = lucene::index::IndexReader::getCurrentVersion((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void* SWIGSTDCALL CSharp_IndexReader_getTermFreqVectors(void * jarg1, long jarg2) {
    void* jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    lucene::index::TermFreqVector **result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::index::TermFreqVector **)(arg1)->getTermFreqVectors(arg2);
            
        }_CATCHALL(0,);
    }
    
    _CL_p_p_lucene__index__TermFreqVectorArray* _obj_result = _CLNEW _CL_p_p_lucene__index__TermFreqVectorArray(result);
    jresult=(void*)_obj_result;
    
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_getTermFreqVector(void * jarg1, long jarg2, char * jarg3) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    char *arg3 = (char *) 0 ;
    lucene::index::TermFreqVector *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = jarg3; 
    {
        try {
            result = (lucene::index::TermFreqVector *)(arg1)->getTermFreqVector(arg2,(char const *)arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_indexExists__SWIG_0(char * jarg1) {
    unsigned int jresult = 0 ;
    char *arg1 = (char *) 0 ;
    bool result;
    
    arg1 = jarg1; 
    {
        try {
            result = (bool)lucene::index::IndexReader::indexExists((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_indexExists__SWIG_1(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    bool result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (bool)lucene::index::IndexReader::indexExists((lucene::store::Directory const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexReader_numDocs(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (arg1)->numDocs();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexReader_maxDoc(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = ((lucene::index::IndexReader const *)arg1)->maxDoc();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_document(void * jarg1, long jarg2) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    lucene::document::Document *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::document::Document *)(arg1)->document(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_isDeleted(void * jarg1, long jarg2) {
    unsigned int jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    bool result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (bool)(arg1)->isDeleted(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_hasDeletions(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    bool result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (bool)(arg1)->hasDeletions();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_terms__SWIG_0(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::TermEnum *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (lucene::index::TermEnum *)((lucene::index::IndexReader const *)arg1)->terms();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_terms__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    lucene::index::TermEnum *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (lucene::index::TermEnum *)((lucene::index::IndexReader const *)arg1)->terms((lucene::index::Term const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexReader_docFreq(void * jarg1, void * jarg2) {
    long jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = ((lucene::index::IndexReader const *)arg1)->docFreq((lucene::index::Term const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_termPositions__SWIG_0(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::TermPositions *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (lucene::index::TermPositions *)((lucene::index::IndexReader const *)arg1)->termPositions();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_termPositions__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    lucene::index::TermPositions *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (lucene::index::TermPositions *)(arg1)->termPositions(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_termDocs__SWIG_0(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::TermDocs *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (lucene::index::TermDocs *)((lucene::index::IndexReader const *)arg1)->termDocs();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_termDocs__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    lucene::index::TermDocs *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (lucene::index::TermDocs *)((lucene::index::IndexReader const *)arg1)->termDocs(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_Delete__SWIG_0(void * jarg1, long jarg2) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->deleteDoc(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexReader_Delete__SWIG_1(void * jarg1, void * jarg2) {
    long jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = (arg1)->deleteTerm(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_close(void * jarg1) {
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_isLocked__SWIG_0(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    bool result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (bool)lucene::index::IndexReader::isLocked(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexReader_isLocked__SWIG_1(char * jarg1) {
    unsigned int jresult = 0 ;
    char *arg1 = (char *) 0 ;
    bool result;
    
    arg1 = jarg1; 
    {
        try {
            result = (bool)lucene::index::IndexReader::isLocked((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_unlock__SWIG_0(void * jarg1) {
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            lucene::index::IndexReader::unlock(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexReader_unlock__SWIG_1(char * jarg1) {
    char *arg1 = (char *) 0 ;
    
    arg1 = jarg1; 
    {
        try {
            lucene::index::IndexReader::unlock((char const *)arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexReader_getDirectory(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::store::Directory *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (lucene::store::Directory *)(arg1)->getDirectory();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MultiReader__SWIG_0(void * jarg1, void * jarg2, unsigned int jarg3, void* jarg4) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::index::SegmentInfos *arg2 = (lucene::index::SegmentInfos *) 0 ;
    bool arg3 ;
    lucene::index::IndexReader **arg4 = (lucene::index::IndexReader **) 0 ;
    lucene::index::MultiReader *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = (lucene::index::SegmentInfos *)jarg2; 
    arg3 = jarg3 ? true : false; 
    
    _CL_p_p_lucene__index__IndexReaderArray* _obj_arg4 =(_CL_p_p_lucene__index__IndexReaderArray*)jarg4;
    arg4 = _obj_arg4->array;
    
    {
        try {
            result = (lucene::index::MultiReader *)_CLNEW lucene::index::MultiReader(arg1,arg2,arg3,arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MultiReader__SWIG_1(void* jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader **arg1 = (lucene::index::IndexReader **) 0 ;
    lucene::index::MultiReader *result;
    
    
    _CL_p_p_lucene__index__IndexReaderArray* _obj_arg1 =(_CL_p_p_lucene__index__IndexReaderArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try {
            result = (lucene::index::MultiReader *)_CLNEW lucene::index::MultiReader(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_MultiReader(void * jarg1) {
    lucene::index::MultiReader *arg1 = (lucene::index::MultiReader *) 0 ;
    
    arg1 = (lucene::index::MultiReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_IndexWriter(void * jarg1) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexWriter_getMaxFieldLength(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (arg1)->getMaxFieldLength();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setMaxFieldLength(void * jarg1, long jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setMaxFieldLength(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexWriter_getMergeFactor(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (arg1)->getMergeFactor();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setMergeFactor(void * jarg1, long jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setMergeFactor(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexWriter_getMinMergeDocs(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (arg1)->getMinMergeDocs();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setMinMergeDocs(void * jarg1, long jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setMinMergeDocs(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexWriter_getMaxMergeDocs(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (arg1)->getMaxMergeDocs();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setMaxMergeDocs(void * jarg1, long jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setMaxMergeDocs(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexWriter__SWIG_0(char * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    bool arg3 ;
    bool arg4 ;
    lucene::index::IndexWriter *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    {
        try {
            result = (lucene::index::IndexWriter *)_CLNEW lucene::index::IndexWriter((char const *)arg1,arg2,arg3,arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexWriter__SWIG_1(char * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    bool arg3 ;
    lucene::index::IndexWriter *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::index::IndexWriter *)_CLNEW lucene::index::IndexWriter((char const *)arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexWriter__SWIG_2(void * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    bool arg3 ;
    bool arg4 ;
    lucene::index::IndexWriter *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    {
        try {
            result = (lucene::index::IndexWriter *)_CLNEW lucene::index::IndexWriter(arg1,arg2,arg3,arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexWriter__SWIG_3(void * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    bool arg3 ;
    lucene::index::IndexWriter *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::index::IndexWriter *)_CLNEW lucene::index::IndexWriter(arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_close(void * jarg1) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_IndexWriter_docCount(void * jarg1) {
    long jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (arg1)->docCount();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_addDocument(void * jarg1, void * jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    lucene::document::Document *arg2 = (lucene::document::Document *) 0 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (lucene::document::Document *)jarg2; 
    {
        try {
            (arg1)->addDocument(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_optimize(void * jarg1) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            (arg1)->optimize();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexWriter_getDirectory(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    lucene::store::Directory *result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (lucene::store::Directory *)(arg1)->getDirectory();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_IndexWriter_getUseCompoundFile(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    bool result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (bool)(arg1)->getUseCompoundFile();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setUseCompoundFile(void * jarg1, unsigned int jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    bool arg2 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            (arg1)->setUseCompoundFile(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_IndexWriter_setSimilarity(void * jarg1, void * jarg2) {
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    lucene::search::Similarity *arg2 = (lucene::search::Similarity *) 0 ;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    arg2 = (lucene::search::Similarity *)jarg2; 
    {
        try {
            (arg1)->setSimilarity(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexWriter_getSimilarity(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    lucene::search::Similarity *result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (lucene::search::Similarity *)(arg1)->getSimilarity();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexWriter_getAnalyzer(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexWriter *arg1 = (lucene::index::IndexWriter *) 0 ;
    lucene::analysis::Analyzer *result;
    
    arg1 = (lucene::index::IndexWriter *)jarg1; 
    {
        try {
            result = (lucene::analysis::Analyzer *)(arg1)->getAnalyzer();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_DocumentWriter(void * jarg1, void * jarg2, void * jarg3, long jarg4) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    lucene::search::Similarity *arg3 = (lucene::search::Similarity *) 0 ;
    int32_t arg4 ;
    lucene::index::DocumentWriter *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    arg3 = (lucene::search::Similarity *)jarg3; 
    arg4 = (int32_t)jarg4; 
    {
        try {
            result = (lucene::index::DocumentWriter *)_CLNEW lucene::index::DocumentWriter(arg1,arg2,arg3,arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_DocumentWriter(void * jarg1) {
    lucene::index::DocumentWriter *arg1 = (lucene::index::DocumentWriter *) 0 ;
    
    arg1 = (lucene::index::DocumentWriter *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_DocumentWriter_addDocument(void * jarg1, char * jarg2, void * jarg3) {
    lucene::index::DocumentWriter *arg1 = (lucene::index::DocumentWriter *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::document::Document *arg3 = (lucene::document::Document *) 0 ;
    
    arg1 = (lucene::index::DocumentWriter *)jarg1; 
    arg2 = jarg2; 
    arg3 = (lucene::document::Document *)jarg3; 
    {
        try {
            (arg1)->addDocument((char const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CompoundFileReader(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::index::CompoundFileReader *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::index::CompoundFileReader *)_CLNEW lucene::index::CompoundFileReader(arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CompoundFileReader(void * jarg1) {
    lucene::index::CompoundFileReader *arg1 = (lucene::index::CompoundFileReader *) 0 ;
    
    arg1 = (lucene::index::CompoundFileReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CompoundFileReader_getDirectory(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::CompoundFileReader *arg1 = (lucene::index::CompoundFileReader *) 0 ;
    lucene::store::Directory *result;
    
    arg1 = (lucene::index::CompoundFileReader *)jarg1; 
    {
        try {
            result = (lucene::store::Directory *)(arg1)->getDirectory();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_CompoundFileReader_getName(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::CompoundFileReader *arg1 = (lucene::index::CompoundFileReader *) 0 ;
    char *result;
    
    arg1 = (lucene::index::CompoundFileReader *)jarg1; 
    {
        try {
            result = (char *)(arg1)->getName();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_CompoundFileWriter(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::index::CompoundFileWriter *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::index::CompoundFileWriter *)_CLNEW lucene::index::CompoundFileWriter(arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_CompoundFileWriter(void * jarg1) {
    lucene::index::CompoundFileWriter *arg1 = (lucene::index::CompoundFileWriter *) 0 ;
    
    arg1 = (lucene::index::CompoundFileWriter *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_CompoundFileWriter_getDirectory(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::CompoundFileWriter *arg1 = (lucene::index::CompoundFileWriter *) 0 ;
    lucene::store::Directory *result;
    
    arg1 = (lucene::index::CompoundFileWriter *)jarg1; 
    {
        try {
            result = (lucene::store::Directory *)(arg1)->getDirectory();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_CompoundFileWriter_getName(void * jarg1) {
    char * jresult = 0 ;
    lucene::index::CompoundFileWriter *arg1 = (lucene::index::CompoundFileWriter *) 0 ;
    char *result;
    
    arg1 = (lucene::index::CompoundFileWriter *)jarg1; 
    {
        try {
            result = (char *)(arg1)->getName();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_CompoundFileWriter_addFile(void * jarg1, char * jarg2) {
    lucene::index::CompoundFileWriter *arg1 = (lucene::index::CompoundFileWriter *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::index::CompoundFileWriter *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->addFile(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_CompoundFileWriter_close(void * jarg1) {
    lucene::index::CompoundFileWriter *arg1 = (lucene::index::CompoundFileWriter *) 0 ;
    
    arg1 = (lucene::index::CompoundFileWriter *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentReader__SWIG_0(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    lucene::index::SegmentReader *result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            result = (lucene::index::SegmentReader *)_CLNEW lucene::index::SegmentReader(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentReader__SWIG_1(void * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    lucene::index::SegmentInfos *arg1 = (lucene::index::SegmentInfos *) 0 ;
    lucene::index::SegmentInfo *arg2 = (lucene::index::SegmentInfo *) 0 ;
    bool arg3 ;
    lucene::index::SegmentReader *result;
    
    arg1 = (lucene::index::SegmentInfos *)jarg1; 
    arg2 = (lucene::index::SegmentInfo *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::index::SegmentReader *)_CLNEW lucene::index::SegmentReader(arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SegmentReader(void * jarg1) {
    lucene::index::SegmentReader *arg1 = (lucene::index::SegmentReader *) 0 ;
    
    arg1 = (lucene::index::SegmentReader *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SegmentReader_hasDeletions__SWIG_0(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    bool result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            result = (bool)lucene::index::SegmentReader::hasDeletions((lucene::index::SegmentInfo const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SegmentReader_usesCompoundFile(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    bool result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            result = (bool)lucene::index::SegmentReader::usesCompoundFile(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SegmentReader_hasSeparateNorms(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::index::SegmentInfo *arg1 = (lucene::index::SegmentInfo *) 0 ;
    bool result;
    
    arg1 = (lucene::index::SegmentInfo *)jarg1; 
    {
        try {
            result = (bool)lucene::index::SegmentReader::hasSeparateNorms(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SegmentMerger(void * jarg1, char * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    lucene::index::SegmentMerger *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::index::SegmentMerger *)_CLNEW lucene::index::SegmentMerger(arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SegmentMerger(void * jarg1) {
    lucene::index::SegmentMerger *arg1 = (lucene::index::SegmentMerger *) 0 ;
    
    arg1 = (lucene::index::SegmentMerger *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentMerger_add(void * jarg1, void * jarg2) {
    lucene::index::SegmentMerger *arg1 = (lucene::index::SegmentMerger *) 0 ;
    lucene::index::SegmentReader *arg2 = (lucene::index::SegmentReader *) 0 ;
    
    arg1 = (lucene::index::SegmentMerger *)jarg1; 
    arg2 = (lucene::index::SegmentReader *)jarg2; 
    {
        try {
            arg2->__cl_addref();  	(arg1)->add(arg2);
        }_CATCHALL(,);   
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_SegmentMerger_segmentReader(void * jarg1, long jarg2) {
    void * jresult = 0 ;
    lucene::index::SegmentMerger *arg1 = (lucene::index::SegmentMerger *) 0 ;
    int32_t arg2 ;
    lucene::index::IndexReader *result;
    
    arg1 = (lucene::index::SegmentMerger *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::index::IndexReader *)(arg1)->segmentReader(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_SegmentMerger_merge(void * jarg1) {
    long jresult = 0 ;
    lucene::index::SegmentMerger *arg1 = (lucene::index::SegmentMerger *) 0 ;
    int32_t result;
    
    arg1 = (lucene::index::SegmentMerger *)jarg1; 
    {
        try {
            result = (arg1)->merge();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_SegmentMerger_closeReaders(void * jarg1) {
    lucene::index::SegmentMerger *arg1 = (lucene::index::SegmentMerger *) 0 ;
    
    arg1 = (lucene::index::SegmentMerger *)jarg1; 
    {
        try {
            (arg1)->closeReaders();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Filter(void * jarg1) {
    lucene::search::Filter *arg1 = (lucene::search::Filter *) 0 ;
    
    arg1 = (lucene::search::Filter *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Filter_bits(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::search::Filter *arg1 = (lucene::search::Filter *) 0 ;
    lucene::index::IndexReader *arg2 = (lucene::index::IndexReader *) 0 ;
    lucene::util::BitSet *result;
    
    arg1 = (lucene::search::Filter *)jarg1; 
    arg2 = (lucene::index::IndexReader *)jarg2; 
    {
        try {
            result = (lucene::util::BitSet *)((lucene::search::Filter const *)arg1)->bits(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Filter_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Filter *arg1 = (lucene::search::Filter *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Filter *)jarg1; 
    {
        try {
            result = (char *)(arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_DateFilter(void * jarg1) {
    lucene::search::DateFilter *arg1 = (lucene::search::DateFilter *) 0 ;
    
    arg1 = (lucene::search::DateFilter *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_DateFilter(char * jarg1, long long jarg2, long long jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t arg2 ;
    int64_t arg3 ;
    lucene::search::DateFilter *result;
    
    arg1 = jarg1; 
    arg2 = (int64_t)jarg2; 
    arg3 = (int64_t)jarg3; 
    {
        try {
            result = (lucene::search::DateFilter *)_CLNEW lucene::search::DateFilter((char const *)arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_DateFilter_Before(char * jarg1, long long jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t arg2 ;
    lucene::search::DateFilter *result;
    
    arg1 = jarg1; 
    arg2 = (int64_t)jarg2; 
    {
        try {
            result = (lucene::search::DateFilter *)lucene::search::DateFilter::Before((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_DateFilter_After(char * jarg1, long long jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int64_t arg2 ;
    lucene::search::DateFilter *result;
    
    arg1 = jarg1; 
    arg2 = (int64_t)jarg2; 
    {
        try {
            result = (lucene::search::DateFilter *)lucene::search::DateFilter::After((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Similarity(void * jarg1) {
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Similarity_setDefault(void * jarg1) {
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    {
        try {
            lucene::search::Similarity::setDefault(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Similarity_getDefault() {
    void * jresult = 0 ;
    lucene::search::Similarity *result;
    
    {
        try {
            result = (lucene::search::Similarity *)lucene::search::Similarity::getDefault();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp_Similarity_encodeNorm(double jarg1) {
    unsigned char jresult = 0 ;
    float_t arg1 ;
    uint8_t result;
    
    arg1 = (float_t)jarg1; 
    {
        try {
            result = lucene::search::Similarity::encodeNorm(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_decodeNorm(unsigned char jarg1) {
    double jresult = 0 ;
    uint8_t arg1 ;
    float_t result;
    
    arg1 = (uint8_t)jarg1; 
    {
        try {
            result = lucene::search::Similarity::decodeNorm(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned char SWIGSTDCALL CSharp_Similarity_floatToByte(double jarg1) {
    unsigned char jresult = 0 ;
    float_t arg1 ;
    uint8_t result;
    
    arg1 = (float_t)jarg1; 
    {
        try {
            result = lucene::search::Similarity::floatToByte(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_byteToFloat(unsigned char jarg1) {
    double jresult = 0 ;
    uint8_t arg1 ;
    float_t result;
    
    arg1 = (uint8_t)jarg1; 
    {
        try {
            result = lucene::search::Similarity::byteToFloat(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_lengthNorm(void * jarg1, char * jarg2, long jarg3) {
    double jresult = 0 ;
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    char *arg2 = (char *) 0 ;
    int32_t arg3 ;
    float_t result;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    arg2 = jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            result = (arg1)->lengthNorm((char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_queryNorm(void * jarg1, double jarg2) {
    double jresult = 0 ;
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    float_t arg2 ;
    float_t result;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    arg2 = (float_t)jarg2; 
    {
        try {
            result = (arg1)->queryNorm(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_sloppyFreq(void * jarg1, long jarg2) {
    double jresult = 0 ;
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    int32_t arg2 ;
    float_t result;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->sloppyFreq(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Similarity_coord(void * jarg1, long jarg2, long jarg3) {
    double jresult = 0 ;
    lucene::search::Similarity *arg1 = (lucene::search::Similarity *) 0 ;
    int32_t arg2 ;
    int32_t arg3 ;
    float_t result;
    
    arg1 = (lucene::search::Similarity *)jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            result = (arg1)->coord(arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_SortField(void * jarg1) {
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_SCORE() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::SCORE;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_DOC() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::DOC;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_AUTO() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::AUTO;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_STRING() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::STRING;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_INT() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::INT;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_FLOAT() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::FLOAT;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_SortField_CUSTOM() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::SortField::CUSTOM;
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_SortField_FIELD_SCORE() {
    void * jresult = 0 ;
    lucene::search::SortField *result;
    
    {
        try {
            result = (lucene::search::SortField *)lucene::search::SortField::FIELD_SCORE;
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_SortField_FIELD_DOC() {
    void * jresult = 0 ;
    lucene::search::SortField *result;
    
    {
        try {
            result = (lucene::search::SortField *)lucene::search::SortField::FIELD_DOC;
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SortField__SWIG_0(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::search::SortField *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::search::SortField *)_CLNEW lucene::search::SortField((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SortField__SWIG_1(char * jarg1, unsigned int jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    bool arg2 ;
    lucene::search::SortField *result;
    
    arg1 = jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (lucene::search::SortField *)_CLNEW lucene::search::SortField((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_SortField__SWIG_2(char * jarg1, long jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    int32_t arg2 ;
    bool arg3 ;
    lucene::search::SortField *result;
    
    arg1 = jarg1; 
    arg2 = (int32_t)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::search::SortField *)_CLNEW lucene::search::SortField((char const *)arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SortField_getField(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    char *result;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            result = (char *)(arg1)->getField();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_SortField_getType(void * jarg1) {
    long jresult = 0 ;
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            result = (arg1)->getType();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_SortField_getReverse(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    bool result;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            result = (bool)(arg1)->getReverse();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_SortField_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    char *result;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            result = (char *)((lucene::search::SortField const *)arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Sort(void * jarg1) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_Sort_RELEVANCE() {
    void * jresult = 0 ;
    lucene::search::Sort *result;
    
    {
        try {
            result = (lucene::search::Sort *)lucene::search::Sort::RELEVANCE;
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_Sort_INDEXORDER() {
    void * jresult = 0 ;
    lucene::search::Sort *result;
    
    {
        try {
            result = (lucene::search::Sort *)lucene::search::Sort::INDEXORDER;
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_0() {
    void * jresult = 0 ;
    lucene::search::Sort *result;
    
    {
        try {
            result = (lucene::search::Sort *)_CLNEW lucene::search::Sort();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_1(char * jarg1, unsigned int jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    bool arg2 ;
    lucene::search::Sort *result;
    
    arg1 = jarg1; 
    arg2 = jarg2 ? true : false; 
    {
        try {
            result = (lucene::search::Sort *)_CLNEW lucene::search::Sort((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_2(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::search::Sort *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::search::Sort *)_CLNEW lucene::search::Sort((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_3(void* jarg1) {
    void * jresult = 0 ;
    char **arg1 = (char **) 0 ;
    lucene::search::Sort *result;
    
    
    _CL_p_p_charArray* _obj_arg1 =(_CL_p_p_charArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try {
            result = (lucene::search::Sort *)_CLNEW lucene::search::Sort((char const **)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_4(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::SortField *arg1 = (lucene::search::SortField *) 0 ;
    lucene::search::Sort *result;
    
    arg1 = (lucene::search::SortField *)jarg1; 
    {
        try {
            arg1->__cl_addref();  	result = (lucene::search::Sort *)_CLNEW lucene::search::Sort(arg1);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Sort__SWIG_5(void* jarg1) {
    void * jresult = 0 ;
    lucene::search::SortField **arg1 = (lucene::search::SortField **) 0 ;
    lucene::search::Sort *result;
    
    
    _CL_p_p_lucene__search__SortFieldArray* _obj_arg1 =(_CL_p_p_lucene__search__SortFieldArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try{
            int i=0;    	int32_t arg1plen=0;    	while(arg1[arg1plen]!=NULL) arg1plen++;    	lucene::search::SortField** arg1p = _CLNEW lucene::search::SortField*[arg1plen+1];    	for ( int i=0;i<arg1plen;i++ )arg1p[i]=(arg1p[i]->__cl_addref()>=0?arg1p[i]:arg1p[i]);   	arg1p[arg1plen]=NULL; arg1=arg1p;  	  result = (lucene::search::Sort *)_CLNEW lucene::search::Sort(arg1);
        }_CATCHALL(0,);   
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Sort_setSort__SWIG_0(void * jarg1, char * jarg2, unsigned int jarg3) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    char *arg2 = (char *) 0 ;
    bool arg3 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    arg2 = jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            (arg1)->setSort((char const *)arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Sort_setSort__SWIG_1(void * jarg1, char * jarg2) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    char *arg2 = (char *) 0 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            (arg1)->setSort((char const *)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Sort_setSort__SWIG_2(void * jarg1, void* jarg2) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    char **arg2 = (char **) 0 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    
    _CL_p_p_charArray* _obj_arg2 =(_CL_p_p_charArray*)jarg2;
    arg2 = _obj_arg2->array;
    
    {
        try {
            (arg1)->setSort((char const **)arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Sort_setSort__SWIG_3(void * jarg1, void * jarg2) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    lucene::search::SortField *arg2 = (lucene::search::SortField *) 0 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    arg2 = (lucene::search::SortField *)jarg2; 
    {
        try {
            arg2->__cl_addref();  	(arg1)->setSort(arg2);
        }_CATCHALL(,);   
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Sort_setSort__SWIG_4(void * jarg1, void* jarg2) {
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    lucene::search::SortField **arg2 = (lucene::search::SortField **) 0 ;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    
    _CL_p_p_lucene__search__SortFieldArray* _obj_arg2 =(_CL_p_p_lucene__search__SortFieldArray*)jarg2;
    arg2 = _obj_arg2->array;
    
    {
        try{
            int i=0;    	int32_t arg2plen=0;    	while(arg2[arg2plen]!=NULL) arg2plen++;    	lucene::search::SortField** arg2p = _CLNEW lucene::search::SortField*[arg2plen+1];    	for ( int i=0;i<arg2plen;i++ )arg2p[i]=(arg2p[i]->__cl_addref()>=0?arg2p[i]:arg2p[i]);   	arg2p[arg2plen]=NULL; arg2=arg2p;  	  (arg1)->setSort(arg2);
        }_CATCHALL(,);   
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Sort_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Sort *arg1 = (lucene::search::Sort *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Sort *)jarg1; 
    {
        try {
            result = (char *)((lucene::search::Sort const *)arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Explanation(void * jarg1) {
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT double SWIGSTDCALL CSharp_Explanation_getValue(void * jarg1) {
    double jresult = 0 ;
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    float_t result;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    {
        try {
            result = (arg1)->getValue();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Explanation_setValue(void * jarg1, double jarg2) {
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    float_t arg2 ;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    arg2 = (float_t)jarg2; 
    {
        try {
            (arg1)->setValue(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Explanation_getDescription(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    {
        try {
            result = (char *)(arg1)->getDescription();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Explanation_addDetail(void * jarg1, void * jarg2) {
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    lucene::search::Explanation *arg2 = (lucene::search::Explanation *) 0 ;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    arg2 = (lucene::search::Explanation *)jarg2; 
    {
        try {
            (arg1)->addDetail(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Explanation_ToString(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    {
        try {
            result = (char *)(arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Explanation_toHtml(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Explanation *arg1 = (lucene::search::Explanation *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Explanation *)jarg1; 
    {
        try {
            result = (char *)(arg1)->toHtml();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_HitDoc_score(void * jarg1, double jarg2) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    float_t arg2 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    arg2 = (float_t)jarg2; 
    if (arg1) (arg1)->score = arg2;
    
}


SWIGEXPORT double SWIGSTDCALL CSharp_get_HitDoc_score(void * jarg1) {
    double jresult = 0 ;
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    float_t result;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    result =  ((arg1)->score);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_HitDoc_id(void * jarg1, long jarg2) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    arg2 = (int32_t)jarg2; 
    if (arg1) (arg1)->id = arg2;
    
}


SWIGEXPORT long SWIGSTDCALL CSharp_get_HitDoc_id(void * jarg1) {
    long jresult = 0 ;
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    result =  ((arg1)->id);
    
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_HitDoc_doc(void * jarg1, void * jarg2) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::document::Document *arg2 = (lucene::document::Document *) 0 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    arg2 = (lucene::document::Document *)jarg2; 
    if (arg1) (arg1)->doc = arg2;
    
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_HitDoc_doc(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::document::Document *result;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    result = (lucene::document::Document *) ((arg1)->doc);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_HitDoc_next(void * jarg1, void * jarg2) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::search::HitDoc *arg2 = (lucene::search::HitDoc *) 0 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    arg2 = (lucene::search::HitDoc *)jarg2; 
    if (arg1) (arg1)->next = arg2;
    
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_HitDoc_next(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::search::HitDoc *result;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    result = (lucene::search::HitDoc *) ((arg1)->next);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_set_HitDoc_prev(void * jarg1, void * jarg2) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::search::HitDoc *arg2 = (lucene::search::HitDoc *) 0 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    arg2 = (lucene::search::HitDoc *)jarg2; 
    if (arg1) (arg1)->prev = arg2;
    
}


SWIGEXPORT void * SWIGSTDCALL CSharp_get_HitDoc_prev(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    lucene::search::HitDoc *result;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    result = (lucene::search::HitDoc *) ((arg1)->prev);
    
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_HitDoc(double jarg1, long jarg2) {
    void * jresult = 0 ;
    float_t arg1 ;
    int32_t arg2 ;
    lucene::search::HitDoc *result;
    
    arg1 = (float_t)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::search::HitDoc *)_CLNEW lucene::search::HitDoc(arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_HitDoc(void * jarg1) {
    lucene::search::HitDoc *arg1 = (lucene::search::HitDoc *) 0 ;
    
    arg1 = (lucene::search::HitDoc *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Hits__SWIG_0(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Filter *arg3 = (lucene::search::Filter *) 0 ;
    lucene::search::Sort *arg4 = (lucene::search::Sort *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (lucene::search::Filter *)jarg3; 
    arg4 = (lucene::search::Sort *)jarg4; 
    {
        try {
            result = (lucene::search::Hits *)_CLNEW lucene::search::Hits(arg1,arg2,(lucene::search::Filter const *)arg3,(lucene::search::Sort const *)arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_Hits__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Filter *arg3 = (lucene::search::Filter *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (lucene::search::Filter *)jarg3; 
    {
        try {
            result = (lucene::search::Hits *)_CLNEW lucene::search::Hits(arg1,arg2,(lucene::search::Filter const *)arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Hits(void * jarg1) {
    lucene::search::Hits *arg1 = (lucene::search::Hits *) 0 ;
    
    arg1 = (lucene::search::Hits *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_Hits_length(void * jarg1) {
    long jresult = 0 ;
    lucene::search::Hits *arg1 = (lucene::search::Hits *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::Hits *)jarg1; 
    {
        try {
            result = ((lucene::search::Hits const *)arg1)->length();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Hits_doc(void * jarg1, long jarg2) {
    void * jresult = 0 ;
    lucene::search::Hits *arg1 = (lucene::search::Hits *) 0 ;
    int32_t arg2 ;
    lucene::document::Document *result;
    
    arg1 = (lucene::search::Hits *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            {
                lucene::document::Document &_result_ref = (arg1)->doc(arg2);
                result = (lucene::document::Document *) &_result_ref;
            }
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_Hits_id(void * jarg1, long jarg2) {
    long jresult = 0 ;
    lucene::search::Hits *arg1 = (lucene::search::Hits *) 0 ;
    int32_t arg2 ;
    int32_t result;
    
    arg1 = (lucene::search::Hits *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->id(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT double SWIGSTDCALL CSharp_Hits_score(void * jarg1, long jarg2) {
    double jresult = 0 ;
    lucene::search::Hits *arg1 = (lucene::search::Hits *) 0 ;
    int32_t arg2 ;
    float_t result;
    
    arg1 = (lucene::search::Hits *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->score(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Searchable(void * jarg1) {
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Searchable_close(void * jarg1) {
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    {
        try {
            (arg1)->close();
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_Searchable_docFreq(void * jarg1, void * jarg2) {
    long jresult = 0 ;
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            result = ((lucene::search::Searchable const *)arg1)->docFreq((lucene::index::Term const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_Searchable_maxDoc(void * jarg1) {
    long jresult = 0 ;
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    {
        try {
            result = ((lucene::search::Searchable const *)arg1)->maxDoc();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searchable_doc(void * jarg1, long jarg2) {
    void * jresult = 0 ;
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    int32_t arg2 ;
    lucene::document::Document *result;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (lucene::document::Document *)(arg1)->doc(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searchable_explain(void * jarg1, void * jarg2, long jarg3) {
    void * jresult = 0 ;
    lucene::search::Searchable *arg1 = (lucene::search::Searchable *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    int32_t arg3 ;
    lucene::search::Explanation *result;
    
    arg1 = (lucene::search::Searchable *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            result = (lucene::search::Explanation *)(arg1)->explain(arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Searcher(void * jarg1) {
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searcher_search__SWIG_0(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    {
        try {
            result = (lucene::search::Hits *)(arg1)->search(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searcher_search__SWIG_1(void * jarg1, void * jarg2, void * jarg3) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Filter *arg3 = (lucene::search::Filter *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (lucene::search::Filter *)jarg3; 
    {
        try {
            result = (lucene::search::Hits *)(arg1)->search(arg2,(lucene::search::Filter const *)arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searcher_search__SWIG_2(void * jarg1, void * jarg2, void * jarg3) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Sort *arg3 = (lucene::search::Sort *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (lucene::search::Sort *)jarg3; 
    {
        try {
            result = (lucene::search::Hits *)(arg1)->search(arg2,(lucene::search::Sort const *)arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searcher_search__SWIG_3(void * jarg1, void * jarg2, void * jarg3, void * jarg4) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    lucene::search::Filter *arg3 = (lucene::search::Filter *) 0 ;
    lucene::search::Sort *arg4 = (lucene::search::Sort *) 0 ;
    lucene::search::Hits *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = (lucene::search::Filter *)jarg3; 
    arg4 = (lucene::search::Sort *)jarg4; 
    {
        try {
            result = (lucene::search::Hits *)(arg1)->search(arg2,(lucene::search::Filter const *)arg3,(lucene::search::Sort const *)arg4);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_Searcher_setSimilarity(void * jarg1, void * jarg2) {
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Similarity *arg2 = (lucene::search::Similarity *) 0 ;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    arg2 = (lucene::search::Similarity *)jarg2; 
    {
        try {
            (arg1)->setSimilarity(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Searcher_getSimilarity(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::Searcher *arg1 = (lucene::search::Searcher *) 0 ;
    lucene::search::Similarity *result;
    
    arg1 = (lucene::search::Searcher *)jarg1; 
    {
        try {
            result = (lucene::search::Similarity *)(arg1)->getSimilarity();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_Query(void * jarg1) {
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    
    arg1 = (lucene::search::Query *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_Query_setBoost(void * jarg1, double jarg2) {
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    float_t arg2 ;
    
    arg1 = (lucene::search::Query *)jarg1; 
    arg2 = (float_t)jarg2; 
    {
        try {
            (arg1)->setBoost(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT double SWIGSTDCALL CSharp_Query_getBoost(void * jarg1) {
    double jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    float_t result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    {
        try {
            result = ((lucene::search::Query const *)arg1)->getBoost();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Query_rewrite(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    lucene::index::IndexReader *arg2 = (lucene::index::IndexReader *) 0 ;
    lucene::search::Query *result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    arg2 = (lucene::index::IndexReader *)jarg2; 
    {
        try {
            result = (lucene::search::Query *)(arg1)->rewrite(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_Query_getSimilarity(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    lucene::search::Searcher *arg2 = (lucene::search::Searcher *) 0 ;
    lucene::search::Similarity *result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    arg2 = (lucene::search::Searcher *)jarg2; 
    {
        try {
            result = (lucene::search::Similarity *)(arg1)->getSimilarity(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Query_ToString__SWIG_0(void * jarg1, char * jarg2) {
    char * jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    char *arg2 = (char *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (char *)(arg1)->toString((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_Query_equals(void * jarg1, void * jarg2) {
    unsigned int jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    bool result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    {
        try {
            result = (bool)((lucene::search::Query const *)arg1)->equals(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_Query_ToString__SWIG_1(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::Query *arg1 = (lucene::search::Query *) 0 ;
    char *result;
    
    arg1 = (lucene::search::Query *)jarg1; 
    {
        try {
            result = (char *)(arg1)->toString();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    _CLDELETE_CaARRAY(result);
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexSearcher__SWIG_0(char * jarg1) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::search::IndexSearcher *result;
    
    arg1 = jarg1; 
    {
        try {
            result = (lucene::search::IndexSearcher *)_CLNEW lucene::search::IndexSearcher((char const *)arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexSearcher__SWIG_1(void * jarg1) {
    void * jresult = 0 ;
    lucene::store::Directory *arg1 = (lucene::store::Directory *) 0 ;
    lucene::search::IndexSearcher *result;
    
    arg1 = (lucene::store::Directory *)jarg1; 
    {
        try {
            result = (lucene::search::IndexSearcher *)_CLNEW lucene::search::IndexSearcher(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_IndexSearcher__SWIG_2(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::IndexReader *arg1 = (lucene::index::IndexReader *) 0 ;
    lucene::search::IndexSearcher *result;
    
    arg1 = (lucene::index::IndexReader *)jarg1; 
    {
        try {
            result = (lucene::search::IndexSearcher *)_CLNEW lucene::search::IndexSearcher(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_IndexSearcher(void * jarg1) {
    lucene::search::IndexSearcher *arg1 = (lucene::search::IndexSearcher *) 0 ;
    
    arg1 = (lucene::search::IndexSearcher *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_IndexSearcher_getReader(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::IndexSearcher *arg1 = (lucene::search::IndexSearcher *) 0 ;
    lucene::index::IndexReader *result;
    
    arg1 = (lucene::search::IndexSearcher *)jarg1; 
    {
        try {
            result = (lucene::index::IndexReader *)(arg1)->getReader();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_MultiSearcher(void* jarg1) {
    void * jresult = 0 ;
    lucene::search::Searchable **arg1 = (lucene::search::Searchable **) 0 ;
    lucene::search::MultiSearcher *result;
    
    
    _CL_p_p_lucene__search__SearchableArray* _obj_arg1 =(_CL_p_p_lucene__search__SearchableArray*)jarg1;
    arg1 = _obj_arg1->array;
    
    {
        try {
            result = (lucene::search::MultiSearcher *)_CLNEW lucene::search::MultiSearcher(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_MultiSearcher(void * jarg1) {
    lucene::search::MultiSearcher *arg1 = (lucene::search::MultiSearcher *) 0 ;
    
    arg1 = (lucene::search::MultiSearcher *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_MultiSearcher_searcherIndex(void * jarg1, long jarg2) {
    long jresult = 0 ;
    lucene::search::MultiSearcher *arg1 = (lucene::search::MultiSearcher *) 0 ;
    int32_t arg2 ;
    int32_t result;
    
    arg1 = (lucene::search::MultiSearcher *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->searcherIndex(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_MultiSearcher_subSearcher(void * jarg1, long jarg2) {
    long jresult = 0 ;
    lucene::search::MultiSearcher *arg1 = (lucene::search::MultiSearcher *) 0 ;
    int32_t arg2 ;
    int32_t result;
    
    arg1 = (lucene::search::MultiSearcher *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->subSearcher(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT long SWIGSTDCALL CSharp_MultiSearcher_subDoc(void * jarg1, long jarg2) {
    long jresult = 0 ;
    lucene::search::MultiSearcher *arg1 = (lucene::search::MultiSearcher *) 0 ;
    int32_t arg2 ;
    int32_t result;
    
    arg1 = (lucene::search::MultiSearcher *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            result = (arg1)->subDoc(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_BooleanQuery() {
    void * jresult = 0 ;
    lucene::search::BooleanQuery *result;
    
    {
        try {
            result = (lucene::search::BooleanQuery *)_CLNEW lucene::search::BooleanQuery();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_BooleanQuery(void * jarg1) {
    lucene::search::BooleanQuery *arg1 = (lucene::search::BooleanQuery *) 0 ;
    
    arg1 = (lucene::search::BooleanQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_BooleanQuery_getMaxClauseCount() {
    long jresult = 0 ;
    int32_t result;
    
    {
        try {
            result = lucene::search::BooleanQuery::getMaxClauseCount();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_BooleanQuery_setMaxClauseCount(long jarg1) {
    int32_t arg1 ;
    
    arg1 = (int32_t)jarg1; 
    {
        try {
            lucene::search::BooleanQuery::setMaxClauseCount(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_BooleanQuery_add(void * jarg1, void * jarg2, unsigned int jarg3, unsigned int jarg4) {
    lucene::search::BooleanQuery *arg1 = (lucene::search::BooleanQuery *) 0 ;
    lucene::search::Query *arg2 = (lucene::search::Query *) 0 ;
    bool arg3 ;
    bool arg4 ;
    
    arg1 = (lucene::search::BooleanQuery *)jarg1; 
    arg2 = (lucene::search::Query *)jarg2; 
    arg3 = jarg3 ? true : false; 
    arg4 = jarg4 ? true : false; 
    {
        try {
            arg2->__cl_addref();  	(arg1)->add(arg2,arg3,arg4);
        }_CATCHALL(,);   
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_BooleanQuery_getClauseCount(void * jarg1) {
    long jresult = 0 ;
    lucene::search::BooleanQuery *arg1 = (lucene::search::BooleanQuery *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::BooleanQuery *)jarg1; 
    {
        try {
            result = (arg1)->getClauseCount();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_TermQuery(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::search::TermQuery *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (lucene::search::TermQuery *)_CLNEW lucene::search::TermQuery(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_TermQuery(void * jarg1) {
    lucene::search::TermQuery *arg1 = (lucene::search::TermQuery *) 0 ;
    
    arg1 = (lucene::search::TermQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_TermQuery_getTerm(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::TermQuery *arg1 = (lucene::search::TermQuery *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::search::TermQuery *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)(arg1)->getTerm();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_PhraseQuery() {
    void * jresult = 0 ;
    lucene::search::PhraseQuery *result;
    
    {
        try {
            result = (lucene::search::PhraseQuery *)_CLNEW lucene::search::PhraseQuery();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_PhraseQuery(void * jarg1) {
    lucene::search::PhraseQuery *arg1 = (lucene::search::PhraseQuery *) 0 ;
    
    arg1 = (lucene::search::PhraseQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_PhraseQuery_setSlop(void * jarg1, long jarg2) {
    lucene::search::PhraseQuery *arg1 = (lucene::search::PhraseQuery *) 0 ;
    int32_t arg2 ;
    
    arg1 = (lucene::search::PhraseQuery *)jarg1; 
    arg2 = (int32_t)jarg2; 
    {
        try {
            (arg1)->setSlop(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT long SWIGSTDCALL CSharp_PhraseQuery_getSlop(void * jarg1) {
    long jresult = 0 ;
    lucene::search::PhraseQuery *arg1 = (lucene::search::PhraseQuery *) 0 ;
    int32_t result;
    
    arg1 = (lucene::search::PhraseQuery *)jarg1; 
    {
        try {
            result = (arg1)->getSlop();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_PhraseQuery_add__SWIG_0(void * jarg1, void * jarg2) {
    lucene::search::PhraseQuery *arg1 = (lucene::search::PhraseQuery *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    
    arg1 = (lucene::search::PhraseQuery *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    {
        try {
            (arg1)->add(arg2);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_PhraseQuery_add__SWIG_1(void * jarg1, void * jarg2, long jarg3) {
    lucene::search::PhraseQuery *arg1 = (lucene::search::PhraseQuery *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    int32_t arg3 ;
    
    arg1 = (lucene::search::PhraseQuery *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    arg3 = (int32_t)jarg3; 
    {
        try {
            (arg1)->add(arg2,arg3);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_MultiTermQuery(void * jarg1) {
    lucene::search::MultiTermQuery *arg1 = (lucene::search::MultiTermQuery *) 0 ;
    
    arg1 = (lucene::search::MultiTermQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_MultiTermQuery_getTerm(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::MultiTermQuery *arg1 = (lucene::search::MultiTermQuery *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::search::MultiTermQuery *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)((lucene::search::MultiTermQuery const *)arg1)->getTerm();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_WildcardQuery(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::search::WildcardQuery *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (lucene::search::WildcardQuery *)_CLNEW lucene::search::WildcardQuery(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_WildcardQuery(void * jarg1) {
    lucene::search::WildcardQuery *arg1 = (lucene::search::WildcardQuery *) 0 ;
    
    arg1 = (lucene::search::WildcardQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_RangeQuery(void * jarg1, void * jarg2, unsigned int jarg3) {
    void * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::index::Term *arg2 = (lucene::index::Term *) 0 ;
    bool arg3 ;
    lucene::search::RangeQuery *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    arg2 = (lucene::index::Term *)jarg2; 
    arg3 = jarg3 ? true : false; 
    {
        try {
            result = (lucene::search::RangeQuery *)_CLNEW lucene::search::RangeQuery(arg1,arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_RangeQuery(void * jarg1) {
    lucene::search::RangeQuery *arg1 = (lucene::search::RangeQuery *) 0 ;
    
    arg1 = (lucene::search::RangeQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RangeQuery_getLowerTerm(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::RangeQuery *arg1 = (lucene::search::RangeQuery *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::search::RangeQuery *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)((lucene::search::RangeQuery const *)arg1)->getLowerTerm();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_RangeQuery_getUpperTerm(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::RangeQuery *arg1 = (lucene::search::RangeQuery *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::search::RangeQuery *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)((lucene::search::RangeQuery const *)arg1)->getUpperTerm();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT unsigned int SWIGSTDCALL CSharp_RangeQuery_isInclusive(void * jarg1) {
    unsigned int jresult = 0 ;
    lucene::search::RangeQuery *arg1 = (lucene::search::RangeQuery *) 0 ;
    bool result;
    
    arg1 = (lucene::search::RangeQuery *)jarg1; 
    {
        try {
            result = (bool)((lucene::search::RangeQuery const *)arg1)->isInclusive();
            
        }_CATCHALL(0,);
    }
    jresult = result; 
    return jresult;
}


SWIGEXPORT char * SWIGSTDCALL CSharp_RangeQuery_getField(void * jarg1) {
    char * jresult = 0 ;
    lucene::search::RangeQuery *arg1 = (lucene::search::RangeQuery *) 0 ;
    char *result;
    
    arg1 = (lucene::search::RangeQuery *)jarg1; 
    {
        try {
            result = (char *)((lucene::search::RangeQuery const *)arg1)->getField();
            
        }_CATCHALL(0,);
    }
    jresult = SWIG_csharp_string_callback(result); 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_PrefixQuery(void * jarg1) {
    void * jresult = 0 ;
    lucene::index::Term *arg1 = (lucene::index::Term *) 0 ;
    lucene::search::PrefixQuery *result;
    
    arg1 = (lucene::index::Term *)jarg1; 
    {
        try {
            result = (lucene::search::PrefixQuery *)_CLNEW lucene::search::PrefixQuery(arg1);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_PrefixQuery(void * jarg1) {
    lucene::search::PrefixQuery *arg1 = (lucene::search::PrefixQuery *) 0 ;
    
    arg1 = (lucene::search::PrefixQuery *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_PrefixQuery_getPrefix(void * jarg1) {
    void * jresult = 0 ;
    lucene::search::PrefixQuery *arg1 = (lucene::search::PrefixQuery *) 0 ;
    lucene::index::Term *result;
    
    arg1 = (lucene::search::PrefixQuery *)jarg1; 
    {
        try {
            result = (lucene::index::Term *)(arg1)->getPrefix();
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_new_QueryParser(char * jarg1, void * jarg2) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    lucene::analysis::Analyzer *arg2 = (lucene::analysis::Analyzer *) 0 ;
    lucene::queryParser::QueryParser *result;
    
    arg1 = jarg1; 
    arg2 = (lucene::analysis::Analyzer *)jarg2; 
    {
        try {
            result = (lucene::queryParser::QueryParser *)_CLNEW lucene::queryParser::QueryParser((char const *)arg1,arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void SWIGSTDCALL CSharp_delete_QueryParser(void * jarg1) {
    lucene::queryParser::QueryParser *arg1 = (lucene::queryParser::QueryParser *) 0 ;
    
    arg1 = (lucene::queryParser::QueryParser *)jarg1; 
    {
        try {
            _CLDECDELETE(arg1);
            
        }_CATCHALL(,);
    }
}


SWIGEXPORT void * SWIGSTDCALL CSharp_QueryParser_parse__SWIG_0(void * jarg1, char * jarg2) {
    void * jresult = 0 ;
    lucene::queryParser::QueryParser *arg1 = (lucene::queryParser::QueryParser *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::search::Query *result;
    
    arg1 = (lucene::queryParser::QueryParser *)jarg1; 
    arg2 = jarg2; 
    {
        try {
            result = (lucene::search::Query *)(arg1)->parse((char const *)arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_QueryParser_parse__SWIG_1(void * jarg1, void * jarg2) {
    void * jresult = 0 ;
    lucene::queryParser::QueryParser *arg1 = (lucene::queryParser::QueryParser *) 0 ;
    lucene::util::Reader *arg2 = (lucene::util::Reader *) 0 ;
    lucene::search::Query *result;
    
    arg1 = (lucene::queryParser::QueryParser *)jarg1; 
    arg2 = (lucene::util::Reader *)jarg2; 
    {
        try {
            result = (lucene::search::Query *)(arg1)->parse(arg2);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT void * SWIGSTDCALL CSharp_QueryParser_parse__SWIG_2(char * jarg1, char * jarg2, void * jarg3) {
    void * jresult = 0 ;
    char *arg1 = (char *) 0 ;
    char *arg2 = (char *) 0 ;
    lucene::analysis::Analyzer *arg3 = (lucene::analysis::Analyzer *) 0 ;
    lucene::search::Query *result;
    
    arg1 = jarg1; 
    arg2 = jarg2; 
    arg3 = (lucene::analysis::Analyzer *)jarg3; 
    {
        try {
            result = (lucene::search::Query *)lucene::queryParser::QueryParser::parse((char const *)arg1,(char const *)arg2,arg3);
            
        }_CATCHALL(0,);
    }
    jresult = (void *)result; 
    return jresult;
}


SWIGEXPORT lucene::util::Reader * SWIGSTDCALL CSharp_StringReaderUpcast(lucene::util::StringReader *objectRef) {
    return (lucene::util::Reader *)objectRef;
}

SWIGEXPORT lucene::util::Reader * SWIGSTDCALL CSharp_FileReaderUpcast(lucene::util::FileReader *objectRef) {
    return (lucene::util::Reader *)objectRef;
}

SWIGEXPORT lucene::store::Directory * SWIGSTDCALL CSharp_FSDirectoryUpcast(lucene::store::FSDirectory *objectRef) {
    return (lucene::store::Directory *)objectRef;
}

SWIGEXPORT lucene::store::OutputStream * SWIGSTDCALL CSharp_RAMOutputStreamUpcast(lucene::store::RAMOutputStream *objectRef) {
    return (lucene::store::OutputStream *)objectRef;
}

SWIGEXPORT lucene::store::InputStream * SWIGSTDCALL CSharp_RAMInputStreamUpcast(lucene::store::RAMInputStream *objectRef) {
    return (lucene::store::InputStream *)objectRef;
}

SWIGEXPORT lucene::store::Directory * SWIGSTDCALL CSharp_RAMDirectoryUpcast(lucene::store::RAMDirectory *objectRef) {
    return (lucene::store::Directory *)objectRef;
}

SWIGEXPORT lucene::analysis::Analyzer * SWIGSTDCALL CSharp_WhitespaceAnalyzerUpcast(lucene::analysis::WhitespaceAnalyzer *objectRef) {
    return (lucene::analysis::Analyzer *)objectRef;
}

SWIGEXPORT lucene::analysis::Analyzer * SWIGSTDCALL CSharp_SimpleAnalyzerUpcast(lucene::analysis::SimpleAnalyzer *objectRef) {
    return (lucene::analysis::Analyzer *)objectRef;
}

SWIGEXPORT lucene::analysis::Analyzer * SWIGSTDCALL CSharp_StopAnalyzerUpcast(lucene::analysis::StopAnalyzer *objectRef) {
    return (lucene::analysis::Analyzer *)objectRef;
}

SWIGEXPORT lucene::analysis::Analyzer * SWIGSTDCALL CSharp_PerFieldAnalyzerWrapperUpcast(lucene::analysis::PerFieldAnalyzerWrapper *objectRef) {
    return (lucene::analysis::Analyzer *)objectRef;
}

SWIGEXPORT lucene::analysis::Analyzer * SWIGSTDCALL CSharp_StandardAnalyzerUpcast(lucene::analysis::standard::StandardAnalyzer *objectRef) {
    return (lucene::analysis::Analyzer *)objectRef;
}

SWIGEXPORT lucene::index::TermDocs * SWIGSTDCALL CSharp_TermPositionsUpcast(lucene::index::TermPositions *objectRef) {
    return (lucene::index::TermDocs *)objectRef;
}

SWIGEXPORT lucene::index::IndexReader * SWIGSTDCALL CSharp_MultiReaderUpcast(lucene::index::MultiReader *objectRef) {
    return (lucene::index::IndexReader *)objectRef;
}

SWIGEXPORT lucene::store::Directory * SWIGSTDCALL CSharp_CompoundFileReaderUpcast(lucene::index::CompoundFileReader *objectRef) {
    return (lucene::store::Directory *)objectRef;
}

SWIGEXPORT lucene::index::IndexReader * SWIGSTDCALL CSharp_SegmentReaderUpcast(lucene::index::SegmentReader *objectRef) {
    return (lucene::index::IndexReader *)objectRef;
}

SWIGEXPORT lucene::search::Filter * SWIGSTDCALL CSharp_DateFilterUpcast(lucene::search::DateFilter *objectRef) {
    return (lucene::search::Filter *)objectRef;
}

SWIGEXPORT lucene::search::Searchable * SWIGSTDCALL CSharp_SearcherUpcast(lucene::search::Searcher *objectRef) {
    return (lucene::search::Searchable *)objectRef;
}

SWIGEXPORT lucene::search::Searcher * SWIGSTDCALL CSharp_IndexSearcherUpcast(lucene::search::IndexSearcher *objectRef) {
    return (lucene::search::Searcher *)objectRef;
}

SWIGEXPORT lucene::search::Searcher * SWIGSTDCALL CSharp_MultiSearcherUpcast(lucene::search::MultiSearcher *objectRef) {
    return (lucene::search::Searcher *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_BooleanQueryUpcast(lucene::search::BooleanQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_TermQueryUpcast(lucene::search::TermQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_PhraseQueryUpcast(lucene::search::PhraseQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_MultiTermQueryUpcast(lucene::search::MultiTermQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

SWIGEXPORT lucene::search::MultiTermQuery * SWIGSTDCALL CSharp_WildcardQueryUpcast(lucene::search::WildcardQuery *objectRef) {
    return (lucene::search::MultiTermQuery *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_RangeQueryUpcast(lucene::search::RangeQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

SWIGEXPORT lucene::search::Query * SWIGSTDCALL CSharp_PrefixQueryUpcast(lucene::search::PrefixQuery *objectRef) {
    return (lucene::search::Query *)objectRef;
}

#ifdef __cplusplus
}
#endif

