summaryrefslogtreecommitdiffstats
path: root/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h')
-rw-r--r--3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h67
1 files changed, 67 insertions, 0 deletions
diff --git a/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h b/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h
new file mode 100644
index 000000000..2a0373540
--- /dev/null
+++ b/3rdparty/clucene/src/CLucene/search/WildcardTermEnum.h
@@ -0,0 +1,67 @@
+/*------------------------------------------------------------------------------
+* Copyright (C) 2003-2006 Ben van Klinken and the CLucene Team
+*
+* Distributable under the terms of either the Apache License (Version 2.0) or
+* the GNU Lesser General Public License, as specified in the COPYING file.
+------------------------------------------------------------------------------*/
+#ifndef _lucene_search_WildcardTermEnum_
+#define _lucene_search_WildcardTermEnum_
+#if defined(_LUCENE_PRAGMA_ONCE)
+# pragma once
+#endif
+
+#include "CLucene/index/IndexReader.h"
+#include "CLucene/index/Term.h"
+#include "CLucene/index/Terms.h"
+#include "FilteredTermEnum.h"
+
+CL_NS_DEF(search)
+ /**
+ * Subclass of FilteredTermEnum for enumerating all terms that match the
+ * specified wildcard filter term->
+ * <p>
+ * Term enumerations are always ordered by term->compareTo(). Each term in
+ * the enumeration is greater than all that precede it.
+ */
+ class WildcardTermEnum: public FilteredTermEnum {
+ private:
+ CL_NS(index)::Term* __term;
+ TCHAR* pre;
+ int32_t preLen;
+ bool fieldMatch;
+ bool _endEnum;
+
+ /********************************************
+ * const TCHAR* equality with support for wildcards
+ ********************************************/
+
+ protected:
+ bool termCompare(CL_NS(index)::Term* term) ;
+
+ public:
+
+ /**
+ * Creates a new <code>WildcardTermEnum</code>. Passing in a
+ * {@link Term Term} that does not contain a
+ * <code>LUCENE_WILDCARDTERMENUM_WILDCARD_STRING</code> or
+ * <code>LUCENE_WILDCARDTERMENUM_WILDCARD_CHAR</code> will cause an exception to be thrown.
+ */
+ WildcardTermEnum(CL_NS(index)::IndexReader* reader, CL_NS(index)::Term* term);
+ ~WildcardTermEnum();
+
+ qreal difference() ;
+
+ bool endEnum() ;
+
+ /**
+ * Determines if a word matches a wildcard pattern.
+ */
+ static bool wildcardEquals(const TCHAR* pattern, int32_t patternLen, int32_t patternIdx, const TCHAR* str, int32_t strLen, int32_t stringIdx);
+
+ void close();
+
+ const char* getObjectName(){ return WildcardTermEnum::getClassName(); }
+ static const char* getClassName(){ return "WildcardTermEnum"; }
+ };
+CL_NS_END
+#endif