mhs-xapian 1.0.18a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -0
- data/AUTHORS +1 -0
- data/COPYING +340 -0
- data/ChangeLog +5876 -0
- data/HACKING +101 -0
- data/INSTALL +293 -0
- data/Makefile +722 -0
- data/Makefile.am +26 -0
- data/Makefile.in +722 -0
- data/NEWS +2110 -0
- data/README +59 -0
- data/Rakefile +51 -0
- data/TODO +47 -0
- data/aclocal.m4 +7675 -0
- data/config.guess +1501 -0
- data/config.h +56 -0
- data/config.h.in +55 -0
- data/config.status +1298 -0
- data/config.sub +1705 -0
- data/configure +18536 -0
- data/configure.ac +944 -0
- data/csharp/.deps/xapian_wrap.Plo +1 -0
- data/csharp/AssemblyInfo.cs +40 -0
- data/csharp/AssemblyInfo.cs.in +40 -0
- data/csharp/Auto.cs +46 -0
- data/csharp/BM25Weight.cs +107 -0
- data/csharp/BoolWeight.cs +103 -0
- data/csharp/Database.cs +275 -0
- data/csharp/DateValueRangeProcessor.cs +61 -0
- data/csharp/Document.cs +177 -0
- data/csharp/ESet.cs +94 -0
- data/csharp/ESetIterator.cs +117 -0
- data/csharp/Enquire.cs +274 -0
- data/csharp/ExpandDecider.cs +76 -0
- data/csharp/Flint.cs +58 -0
- data/csharp/InMemory.cs +46 -0
- data/csharp/MSet.cs +193 -0
- data/csharp/MSetIterator.cs +141 -0
- data/csharp/Makefile +868 -0
- data/csharp/Makefile.am +106 -0
- data/csharp/Makefile.in +868 -0
- data/csharp/MatchDecider.cs +76 -0
- data/csharp/MultiValueSorter.cs +63 -0
- data/csharp/NumberValueRangeProcessor.cs +61 -0
- data/csharp/PositionIterator.cs +101 -0
- data/csharp/PostingIterator.cs +125 -0
- data/csharp/Quartz.cs +58 -0
- data/csharp/Query.cs +150 -0
- data/csharp/QueryParser.cs +174 -0
- data/csharp/RSet.cs +102 -0
- data/csharp/Remote.cs +100 -0
- data/csharp/SWIGTYPE_p_std__string.cs +30 -0
- data/csharp/SWIGTYPE_p_std__vectorTXapian__Query_t.cs +30 -0
- data/csharp/SWIGTYPE_p_std__vectorTstd__string_t.cs +30 -0
- data/csharp/SimpleStopper.cs +64 -0
- data/csharp/SmokeTest.cs +178 -0
- data/csharp/Sorter.cs +76 -0
- data/csharp/Stem.cs +66 -0
- data/csharp/Stopper.cs +91 -0
- data/csharp/StringValueRangeProcessor.cs +53 -0
- data/csharp/TermGenerator.cs +152 -0
- data/csharp/TermIterator.cs +125 -0
- data/csharp/TradWeight.cs +107 -0
- data/csharp/ValueIterator.cs +102 -0
- data/csharp/ValueRangeProcessor.cs +76 -0
- data/csharp/Version.cs +60 -0
- data/csharp/Weight.cs +93 -0
- data/csharp/WritableDatabase.cs +153 -0
- data/csharp/Xapian.cs +65 -0
- data/csharp/XapianPINVOKE.cs +1527 -0
- data/csharp/docs/Makefile +450 -0
- data/csharp/docs/Makefile.am +16 -0
- data/csharp/docs/Makefile.in +450 -0
- data/csharp/docs/examples/SimpleExpand.cs +109 -0
- data/csharp/docs/examples/SimpleIndex.cs +71 -0
- data/csharp/docs/examples/SimpleSearch.cs +78 -0
- data/csharp/docs/index.html +211 -0
- data/csharp/util.i +233 -0
- data/csharp/xapian_wrap.cc +10338 -0
- data/csharp/xapian_wrap.h +93 -0
- data/depcomp +632 -0
- data/extconf.rb +20 -0
- data/generic/except.i +80 -0
- data/generic/generic.mk +48 -0
- data/install-sh +520 -0
- data/java-swig/.deps/xapian_wrap.Plo +1 -0
- data/java-swig/Auto.java +35 -0
- data/java-swig/BM25Weight.java +81 -0
- data/java-swig/BoolWeight.java +77 -0
- data/java-swig/Database.java +195 -0
- data/java-swig/DateValueRangeProcessor.java +51 -0
- data/java-swig/Document.java +135 -0
- data/java-swig/ESet.java +71 -0
- data/java-swig/ESetIterator.java +71 -0
- data/java-swig/Enquire.java +246 -0
- data/java-swig/ExpandDecider.java +59 -0
- data/java-swig/Flint.java +43 -0
- data/java-swig/InMemory.java +35 -0
- data/java-swig/MSet.java +143 -0
- data/java-swig/MSetIterator.java +87 -0
- data/java-swig/Makefile +781 -0
- data/java-swig/Makefile.am +132 -0
- data/java-swig/Makefile.in +781 -0
- data/java-swig/MatchDecider.java +59 -0
- data/java-swig/MultiValueSorter.java +51 -0
- data/java-swig/NumberValueRangeProcessor.java +51 -0
- data/java-swig/PositionIterator.java +63 -0
- data/java-swig/PostingIterator.java +83 -0
- data/java-swig/Quartz.java +43 -0
- data/java-swig/Query.java +189 -0
- data/java-swig/QueryParser.java +214 -0
- data/java-swig/RSet.java +79 -0
- data/java-swig/Remote.java +71 -0
- data/java-swig/SWIGTYPE_p_std__string.java +25 -0
- data/java-swig/SimpleStopper.java +51 -0
- data/java-swig/SmokeTest.java +161 -0
- data/java-swig/Sorter.java +59 -0
- data/java-swig/Stem.java +51 -0
- data/java-swig/Stopper.java +63 -0
- data/java-swig/StringValueRangeProcessor.java +43 -0
- data/java-swig/TermGenerator.java +158 -0
- data/java-swig/TermIterator.java +83 -0
- data/java-swig/TradWeight.java +81 -0
- data/java-swig/ValueIterator.java +67 -0
- data/java-swig/ValueRangeProcessor.java +59 -0
- data/java-swig/Version.java +47 -0
- data/java-swig/Weight.java +68 -0
- data/java-swig/WritableDatabase.java +123 -0
- data/java-swig/Xapian.java +39 -0
- data/java-swig/XapianConstants.java +15 -0
- data/java-swig/XapianJNI.java +508 -0
- data/java-swig/run-java-test +6 -0
- data/java-swig/xapian_wrap.cc +12594 -0
- data/java-swig/xapian_wrap.h +91 -0
- data/java/Makefile +660 -0
- data/java/Makefile.am +35 -0
- data/java/Makefile.in +660 -0
- data/java/README +76 -0
- data/java/SmokeTest.java +148 -0
- data/java/native/.deps/Database.Plo +1 -0
- data/java/native/.deps/Document.Plo +1 -0
- data/java/native/.deps/ESet.Plo +1 -0
- data/java/native/.deps/ESetIterator.Plo +1 -0
- data/java/native/.deps/Enquire.Plo +1 -0
- data/java/native/.deps/MSet.Plo +1 -0
- data/java/native/.deps/MSetIterator.Plo +1 -0
- data/java/native/.deps/PositionIterator.Plo +1 -0
- data/java/native/.deps/Query.Plo +1 -0
- data/java/native/.deps/RSet.Plo +1 -0
- data/java/native/.deps/Stem.Plo +1 -0
- data/java/native/.deps/TermIterator.Plo +1 -0
- data/java/native/.deps/WritableDatabase.Plo +1 -0
- data/java/native/.deps/org_xapian_XapianJNI.Plo +1 -0
- data/java/native/.deps/utils.Plo +1 -0
- data/java/native/Database.cc +222 -0
- data/java/native/Document.cc +173 -0
- data/java/native/ESet.cc +79 -0
- data/java/native/ESetIterator.cc +82 -0
- data/java/native/Enquire.cc +271 -0
- data/java/native/MSet.cc +169 -0
- data/java/native/MSetIterator.cc +107 -0
- data/java/native/Makefile +594 -0
- data/java/native/Makefile.am +51 -0
- data/java/native/Makefile.in +594 -0
- data/java/native/PositionIterator.cc +64 -0
- data/java/native/Query.cc +180 -0
- data/java/native/RSet.cc +98 -0
- data/java/native/Stem.cc +75 -0
- data/java/native/TermIterator.cc +107 -0
- data/java/native/WritableDatabase.cc +118 -0
- data/java/native/XapianObjectHolder.h +115 -0
- data/java/native/org_xapian_XapianJNI.cc +78 -0
- data/java/native/org_xapian_XapianJNI.h +1369 -0
- data/java/native/utils.cc +51 -0
- data/java/native/xapian_jni.h +116 -0
- data/java/org/xapian/Database.java +148 -0
- data/java/org/xapian/Document.java +135 -0
- data/java/org/xapian/ESet.java +66 -0
- data/java/org/xapian/ESetIterator.java +97 -0
- data/java/org/xapian/Enquire.java +136 -0
- data/java/org/xapian/ExpandDecider.java +30 -0
- data/java/org/xapian/MSet.java +104 -0
- data/java/org/xapian/MSetIterator.java +132 -0
- data/java/org/xapian/Makefile +580 -0
- data/java/org/xapian/Makefile.am +38 -0
- data/java/org/xapian/Makefile.in +580 -0
- data/java/org/xapian/MatchDecider.java +30 -0
- data/java/org/xapian/PositionIterator.java +89 -0
- data/java/org/xapian/Query.java +190 -0
- data/java/org/xapian/RSet.java +89 -0
- data/java/org/xapian/Stem.java +80 -0
- data/java/org/xapian/TermIterator.java +142 -0
- data/java/org/xapian/WritableDatabase.java +92 -0
- data/java/org/xapian/Xapian.java +114 -0
- data/java/org/xapian/XapianJNI.java +444 -0
- data/java/org/xapian/errors/AssertionError.java +40 -0
- data/java/org/xapian/errors/DatabaseCorruptError.java +40 -0
- data/java/org/xapian/errors/DatabaseError.java +40 -0
- data/java/org/xapian/errors/DatabaseLockError.java +40 -0
- data/java/org/xapian/errors/DatabaseModifiedError.java +40 -0
- data/java/org/xapian/errors/DatabaseOpeningError.java +40 -0
- data/java/org/xapian/errors/DocNotFoundError.java +40 -0
- data/java/org/xapian/errors/FeatureUnavailableError.java +40 -0
- data/java/org/xapian/errors/InternalError.java +40 -0
- data/java/org/xapian/errors/InvalidArgumentError.java +40 -0
- data/java/org/xapian/errors/InvalidOperationError.java +40 -0
- data/java/org/xapian/errors/LogicError.java +40 -0
- data/java/org/xapian/errors/Makefile +416 -0
- data/java/org/xapian/errors/Makefile.am +32 -0
- data/java/org/xapian/errors/Makefile.in +416 -0
- data/java/org/xapian/errors/NetworkError.java +40 -0
- data/java/org/xapian/errors/NetworkTimeoutError.java +40 -0
- data/java/org/xapian/errors/RangeError.java +40 -0
- data/java/org/xapian/errors/RuntimeError.java +40 -0
- data/java/org/xapian/errors/UnimplementedError.java +40 -0
- data/java/org/xapian/errors/XapianError.java +40 -0
- data/java/org/xapian/errors/XapianRuntimeError.java +49 -0
- data/java/org/xapian/examples/Makefile +391 -0
- data/java/org/xapian/examples/Makefile.am +8 -0
- data/java/org/xapian/examples/Makefile.in +391 -0
- data/java/org/xapian/examples/SimpleIndex.java +68 -0
- data/java/org/xapian/examples/SimpleSearch.java +71 -0
- data/java/run-java-test +6 -0
- data/libtool +7618 -0
- data/ltmain.sh +6956 -0
- data/mhs-xapian.gemspec +368 -0
- data/missing +378 -0
- data/php/.deps/xapian_wrap.Plo +1 -0
- data/php/Makefile +871 -0
- data/php/Makefile.am +82 -0
- data/php/Makefile.in +871 -0
- data/php/docs/Makefile +453 -0
- data/php/docs/Makefile.am +19 -0
- data/php/docs/Makefile.in +453 -0
- data/php/docs/examples/simpleexpand.php4 +108 -0
- data/php/docs/examples/simpleexpand.php5 +104 -0
- data/php/docs/examples/simpleindex.php4 +76 -0
- data/php/docs/examples/simpleindex.php5 +73 -0
- data/php/docs/examples/simplesearch.php4 +75 -0
- data/php/docs/examples/simplesearch.php5 +72 -0
- data/php/docs/index.html +313 -0
- data/php/except.i +98 -0
- data/php/php4/php_xapian.h +323 -0
- data/php/php4/xapian.php +32 -0
- data/php/php4/xapian_wrap.cc +27656 -0
- data/php/php5/php_xapian.h +319 -0
- data/php/php5/xapian.php +1566 -0
- data/php/php5/xapian_wrap.cc +24330 -0
- data/php/smoketest.php +246 -0
- data/php/smoketest4.php +84 -0
- data/php/smoketest5.php +79 -0
- data/php/util.i +187 -0
- data/python/.deps/xapian_wrap.Plo +1 -0
- data/python/Makefile +891 -0
- data/python/Makefile.am +105 -0
- data/python/Makefile.in +891 -0
- data/python/doccomments.i +5134 -0
- data/python/docs/Makefile +448 -0
- data/python/docs/Makefile.am +14 -0
- data/python/docs/Makefile.in +448 -0
- data/python/docs/examples/simpleexpand.py +98 -0
- data/python/docs/examples/simpleindex.py +65 -0
- data/python/docs/examples/simplematchdecider.py +78 -0
- data/python/docs/examples/simplesearch.py +65 -0
- data/python/docs/index.html +420 -0
- data/python/except.i +290 -0
- data/python/extra.i +1048 -0
- data/python/extracomments.i +28 -0
- data/python/generate-python-exceptions +189 -0
- data/python/generate-python-exceptions.in +189 -0
- data/python/modern/xapian.py +5662 -0
- data/python/modern/xapian_wrap.cc +35170 -0
- data/python/modern/xapian_wrap.h +244 -0
- data/python/pythontest.py +1110 -0
- data/python/smoketest.py +328 -0
- data/python/testsuite.py +382 -0
- data/python/util.i +517 -0
- data/ruby/.deps/xapian_wrap.Plo +494 -0
- data/ruby/.libs/_xapian.bundle +0 -0
- data/ruby/.libs/_xapian.bundle.dSYM/Contents/Info.plist +25 -0
- data/ruby/.libs/_xapian.bundle.dSYM/Contents/Resources/DWARF/_xapian.bundle +0 -0
- data/ruby/.libs/_xapian.la +35 -0
- data/ruby/.libs/_xapian.lai +35 -0
- data/ruby/Makefile +854 -0
- data/ruby/Makefile.am +62 -0
- data/ruby/Makefile.in +854 -0
- data/ruby/_xapian.la +35 -0
- data/ruby/docs/Makefile +487 -0
- data/ruby/docs/Makefile.am +50 -0
- data/ruby/docs/Makefile.in +487 -0
- data/ruby/docs/examples/simpleexpand.rb +98 -0
- data/ruby/docs/examples/simpleindex.rb +60 -0
- data/ruby/docs/examples/simplematchdecider.rb +74 -0
- data/ruby/docs/examples/simplesearch.rb +63 -0
- data/ruby/docs/index.html +197 -0
- data/ruby/smoketest.rb +211 -0
- data/ruby/util.i +232 -0
- data/ruby/xapian.rb +280 -0
- data/ruby/xapian_wrap.cc +25837 -0
- data/ruby/xapian_wrap.h +65 -0
- data/ruby/xapian_wrap.lo +12 -0
- data/skiptest +2 -0
- data/stamp-h1 +1 -0
- data/tcl8/.deps/xapian_wrap.Plo +1 -0
- data/tcl8/Makefile +835 -0
- data/tcl8/Makefile.am +49 -0
- data/tcl8/Makefile.in +835 -0
- data/tcl8/docs/Makefile +448 -0
- data/tcl8/docs/Makefile.am +14 -0
- data/tcl8/docs/Makefile.in +448 -0
- data/tcl8/docs/examples/simpleexpand.tcl +104 -0
- data/tcl8/docs/examples/simpleindex.tcl +68 -0
- data/tcl8/docs/examples/simplesearch.tcl +66 -0
- data/tcl8/docs/index.html +208 -0
- data/tcl8/except.i +48 -0
- data/tcl8/pkgIndex.tcl +1 -0
- data/tcl8/pkgIndex.tcl.in +1 -0
- data/tcl8/run-tcl-test +15 -0
- data/tcl8/runtest.tcl +29 -0
- data/tcl8/smoketest.tcl +155 -0
- data/tcl8/util.i +76 -0
- data/tcl8/xapian_wrap.cc +20900 -0
- data/xapian-bindings.spec +206 -0
- data/xapian-bindings.spec.in +206 -0
- data/xapian-version.h +1 -0
- data/xapian-version.h.in +1 -0
- data/xapian.i +939 -0
- metadata +395 -0
data/csharp/Stopper.cs
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
/* ----------------------------------------------------------------------------
|
2
|
+
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
+
* Version 1.3.32
|
4
|
+
*
|
5
|
+
* Do not make changes to this file unless you know what you are doing--modify
|
6
|
+
* the SWIG interface file instead.
|
7
|
+
* ----------------------------------------------------------------------------- */
|
8
|
+
|
9
|
+
namespace Xapian {
|
10
|
+
|
11
|
+
using System;
|
12
|
+
using System.Runtime.InteropServices;
|
13
|
+
|
14
|
+
public class Stopper : IDisposable {
|
15
|
+
private HandleRef swigCPtr;
|
16
|
+
protected bool swigCMemOwn;
|
17
|
+
|
18
|
+
internal Stopper(IntPtr cPtr, bool cMemoryOwn) {
|
19
|
+
swigCMemOwn = cMemoryOwn;
|
20
|
+
swigCPtr = new HandleRef(this, cPtr);
|
21
|
+
}
|
22
|
+
|
23
|
+
internal static HandleRef getCPtr(Stopper obj) {
|
24
|
+
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
|
25
|
+
}
|
26
|
+
|
27
|
+
~Stopper() {
|
28
|
+
Dispose();
|
29
|
+
}
|
30
|
+
|
31
|
+
public virtual void Dispose() {
|
32
|
+
lock(this) {
|
33
|
+
if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
|
34
|
+
swigCMemOwn = false;
|
35
|
+
XapianPINVOKE.delete_Stopper(swigCPtr);
|
36
|
+
}
|
37
|
+
swigCPtr = new HandleRef(null, IntPtr.Zero);
|
38
|
+
GC.SuppressFinalize(this);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
public virtual bool Apply(string term) {
|
43
|
+
bool ret = XapianPINVOKE.Stopper_Apply(swigCPtr, term);
|
44
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
45
|
+
return ret;
|
46
|
+
}
|
47
|
+
|
48
|
+
public virtual string GetDescription() {
|
49
|
+
string ret = ((this.GetType() == typeof(Stopper)) ? XapianPINVOKE.Stopper_GetDescription(swigCPtr) : XapianPINVOKE.Stopper_GetDescriptionSwigExplicitStopper(swigCPtr));
|
50
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
51
|
+
return ret;
|
52
|
+
}
|
53
|
+
|
54
|
+
public Stopper() : this(XapianPINVOKE.new_Stopper(), true) {
|
55
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
56
|
+
SwigDirectorConnect();
|
57
|
+
}
|
58
|
+
|
59
|
+
private void SwigDirectorConnect() {
|
60
|
+
if (SwigDerivedClassHasMethod("Apply", swigMethodTypes0))
|
61
|
+
swigDelegate0 = new SwigDelegateStopper_0(SwigDirectorApply);
|
62
|
+
if (SwigDerivedClassHasMethod("GetDescription", swigMethodTypes1))
|
63
|
+
swigDelegate1 = new SwigDelegateStopper_1(SwigDirectorGetDescription);
|
64
|
+
XapianPINVOKE.Stopper_director_connect(swigCPtr, swigDelegate0, swigDelegate1);
|
65
|
+
}
|
66
|
+
|
67
|
+
private bool SwigDerivedClassHasMethod(string methodName, Type[] methodTypes) {
|
68
|
+
System.Reflection.MethodInfo methodInfo = this.GetType().GetMethod(methodName, System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, methodTypes, null);
|
69
|
+
bool hasDerivedMethod = methodInfo.DeclaringType.IsSubclassOf(typeof(Stopper));
|
70
|
+
return hasDerivedMethod;
|
71
|
+
}
|
72
|
+
|
73
|
+
private bool SwigDirectorApply(string term) {
|
74
|
+
return Apply(term);
|
75
|
+
}
|
76
|
+
|
77
|
+
private string SwigDirectorGetDescription() {
|
78
|
+
return GetDescription();
|
79
|
+
}
|
80
|
+
|
81
|
+
public delegate bool SwigDelegateStopper_0(string term);
|
82
|
+
public delegate string SwigDelegateStopper_1();
|
83
|
+
|
84
|
+
private SwigDelegateStopper_0 swigDelegate0;
|
85
|
+
private SwigDelegateStopper_1 swigDelegate1;
|
86
|
+
|
87
|
+
private static Type[] swigMethodTypes0 = new Type[] { typeof(string) };
|
88
|
+
private static Type[] swigMethodTypes1 = new Type[] { };
|
89
|
+
}
|
90
|
+
|
91
|
+
}
|
@@ -0,0 +1,53 @@
|
|
1
|
+
/* ----------------------------------------------------------------------------
|
2
|
+
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
+
* Version 1.3.32
|
4
|
+
*
|
5
|
+
* Do not make changes to this file unless you know what you are doing--modify
|
6
|
+
* the SWIG interface file instead.
|
7
|
+
* ----------------------------------------------------------------------------- */
|
8
|
+
|
9
|
+
namespace Xapian {
|
10
|
+
|
11
|
+
using System;
|
12
|
+
using System.Runtime.InteropServices;
|
13
|
+
|
14
|
+
public class StringValueRangeProcessor : ValueRangeProcessor {
|
15
|
+
private HandleRef swigCPtr;
|
16
|
+
|
17
|
+
internal StringValueRangeProcessor(IntPtr cPtr, bool cMemoryOwn) : base(XapianPINVOKE.StringValueRangeProcessorUpcast(cPtr), cMemoryOwn) {
|
18
|
+
swigCPtr = new HandleRef(this, cPtr);
|
19
|
+
}
|
20
|
+
|
21
|
+
internal static HandleRef getCPtr(StringValueRangeProcessor obj) {
|
22
|
+
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
|
23
|
+
}
|
24
|
+
|
25
|
+
~StringValueRangeProcessor() {
|
26
|
+
Dispose();
|
27
|
+
}
|
28
|
+
|
29
|
+
public override void Dispose() {
|
30
|
+
lock(this) {
|
31
|
+
if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
|
32
|
+
swigCMemOwn = false;
|
33
|
+
XapianPINVOKE.delete_StringValueRangeProcessor(swigCPtr);
|
34
|
+
}
|
35
|
+
swigCPtr = new HandleRef(null, IntPtr.Zero);
|
36
|
+
GC.SuppressFinalize(this);
|
37
|
+
base.Dispose();
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
public StringValueRangeProcessor(uint valno_) : this(XapianPINVOKE.new_StringValueRangeProcessor(valno_), true) {
|
42
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
43
|
+
}
|
44
|
+
|
45
|
+
public override uint Apply(SWIGTYPE_p_std__string arg0, SWIGTYPE_p_std__string arg1) {
|
46
|
+
uint ret = XapianPINVOKE.StringValueRangeProcessor_Apply(swigCPtr, SWIGTYPE_p_std__string.getCPtr(arg0), SWIGTYPE_p_std__string.getCPtr(arg1));
|
47
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
48
|
+
return ret;
|
49
|
+
}
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
}
|
@@ -0,0 +1,152 @@
|
|
1
|
+
/* ----------------------------------------------------------------------------
|
2
|
+
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
+
* Version 1.3.32
|
4
|
+
*
|
5
|
+
* Do not make changes to this file unless you know what you are doing--modify
|
6
|
+
* the SWIG interface file instead.
|
7
|
+
* ----------------------------------------------------------------------------- */
|
8
|
+
|
9
|
+
namespace Xapian {
|
10
|
+
|
11
|
+
using System;
|
12
|
+
using System.Runtime.InteropServices;
|
13
|
+
|
14
|
+
public class TermGenerator : IDisposable {
|
15
|
+
private HandleRef swigCPtr;
|
16
|
+
protected bool swigCMemOwn;
|
17
|
+
|
18
|
+
internal TermGenerator(IntPtr cPtr, bool cMemoryOwn) {
|
19
|
+
swigCMemOwn = cMemoryOwn;
|
20
|
+
swigCPtr = new HandleRef(this, cPtr);
|
21
|
+
}
|
22
|
+
|
23
|
+
internal static HandleRef getCPtr(TermGenerator obj) {
|
24
|
+
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
|
25
|
+
}
|
26
|
+
|
27
|
+
~TermGenerator() {
|
28
|
+
Dispose();
|
29
|
+
}
|
30
|
+
|
31
|
+
public virtual void Dispose() {
|
32
|
+
lock(this) {
|
33
|
+
if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
|
34
|
+
swigCMemOwn = false;
|
35
|
+
XapianPINVOKE.delete_TermGenerator(swigCPtr);
|
36
|
+
}
|
37
|
+
swigCPtr = new HandleRef(null, IntPtr.Zero);
|
38
|
+
GC.SuppressFinalize(this);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
public TermGenerator() : this(XapianPINVOKE.new_TermGenerator(), true) {
|
43
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
44
|
+
}
|
45
|
+
|
46
|
+
public void SetStemmer(Stem stemmer) {
|
47
|
+
XapianPINVOKE.TermGenerator_SetStemmer(swigCPtr, Stem.getCPtr(stemmer));
|
48
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
49
|
+
}
|
50
|
+
|
51
|
+
public void SetStopper(Stopper stop) {
|
52
|
+
XapianPINVOKE.TermGenerator_SetStopper__SWIG_0(swigCPtr, Stopper.getCPtr(stop));
|
53
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
54
|
+
}
|
55
|
+
|
56
|
+
public void SetStopper() {
|
57
|
+
XapianPINVOKE.TermGenerator_SetStopper__SWIG_1(swigCPtr);
|
58
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
59
|
+
}
|
60
|
+
|
61
|
+
public void SetDocument(Document doc) {
|
62
|
+
XapianPINVOKE.TermGenerator_SetDocument(swigCPtr, Document.getCPtr(doc));
|
63
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
64
|
+
}
|
65
|
+
|
66
|
+
public Document GetDocument() {
|
67
|
+
Document ret = new Document(XapianPINVOKE.TermGenerator_GetDocument(swigCPtr), false);
|
68
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
69
|
+
return ret;
|
70
|
+
}
|
71
|
+
|
72
|
+
public void SetDatabase(WritableDatabase db) {
|
73
|
+
XapianPINVOKE.TermGenerator_SetDatabase(swigCPtr, WritableDatabase.getCPtr(db));
|
74
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
75
|
+
}
|
76
|
+
|
77
|
+
public TermGenerator.flags SetFlags(TermGenerator.flags toggle, TermGenerator.flags mask) {
|
78
|
+
TermGenerator.flags ret = (TermGenerator.flags)XapianPINVOKE.TermGenerator_SetFlags__SWIG_0(swigCPtr, (int)toggle, (int)mask);
|
79
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
80
|
+
return ret;
|
81
|
+
}
|
82
|
+
|
83
|
+
public TermGenerator.flags SetFlags(TermGenerator.flags toggle) {
|
84
|
+
TermGenerator.flags ret = (TermGenerator.flags)XapianPINVOKE.TermGenerator_SetFlags__SWIG_1(swigCPtr, (int)toggle);
|
85
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
86
|
+
return ret;
|
87
|
+
}
|
88
|
+
|
89
|
+
public void IndexText(string text, uint weight, string prefix) {
|
90
|
+
XapianPINVOKE.TermGenerator_IndexText__SWIG_0(swigCPtr, text, weight, prefix);
|
91
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
92
|
+
}
|
93
|
+
|
94
|
+
public void IndexText(string text, uint weight) {
|
95
|
+
XapianPINVOKE.TermGenerator_IndexText__SWIG_1(swigCPtr, text, weight);
|
96
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
97
|
+
}
|
98
|
+
|
99
|
+
public void IndexText(string text) {
|
100
|
+
XapianPINVOKE.TermGenerator_IndexText__SWIG_2(swigCPtr, text);
|
101
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
102
|
+
}
|
103
|
+
|
104
|
+
public void IndexTextWithoutPositions(string text, uint weight, string prefix) {
|
105
|
+
XapianPINVOKE.TermGenerator_IndexTextWithoutPositions__SWIG_0(swigCPtr, text, weight, prefix);
|
106
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
107
|
+
}
|
108
|
+
|
109
|
+
public void IndexTextWithoutPositions(string text, uint weight) {
|
110
|
+
XapianPINVOKE.TermGenerator_IndexTextWithoutPositions__SWIG_1(swigCPtr, text, weight);
|
111
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
112
|
+
}
|
113
|
+
|
114
|
+
public void IndexTextWithoutPositions(string text) {
|
115
|
+
XapianPINVOKE.TermGenerator_IndexTextWithoutPositions__SWIG_2(swigCPtr, text);
|
116
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
117
|
+
}
|
118
|
+
|
119
|
+
public void IncreaseTermpos(uint delta) {
|
120
|
+
XapianPINVOKE.TermGenerator_IncreaseTermpos__SWIG_0(swigCPtr, delta);
|
121
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
122
|
+
}
|
123
|
+
|
124
|
+
public void IncreaseTermpos() {
|
125
|
+
XapianPINVOKE.TermGenerator_IncreaseTermpos__SWIG_1(swigCPtr);
|
126
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
127
|
+
}
|
128
|
+
|
129
|
+
public uint GetTermPos() {
|
130
|
+
uint ret = XapianPINVOKE.TermGenerator_GetTermPos(swigCPtr);
|
131
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
132
|
+
return ret;
|
133
|
+
}
|
134
|
+
|
135
|
+
public void SetTermpos(uint termpos) {
|
136
|
+
XapianPINVOKE.TermGenerator_SetTermpos(swigCPtr, termpos);
|
137
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
138
|
+
}
|
139
|
+
|
140
|
+
public string GetDescription() {
|
141
|
+
string ret = XapianPINVOKE.TermGenerator_GetDescription(swigCPtr);
|
142
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
143
|
+
return ret;
|
144
|
+
}
|
145
|
+
|
146
|
+
public enum flags {
|
147
|
+
FLAG_SPELLING = 128
|
148
|
+
}
|
149
|
+
|
150
|
+
}
|
151
|
+
|
152
|
+
}
|
@@ -0,0 +1,125 @@
|
|
1
|
+
/* ----------------------------------------------------------------------------
|
2
|
+
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
+
* Version 1.3.32
|
4
|
+
*
|
5
|
+
* Do not make changes to this file unless you know what you are doing--modify
|
6
|
+
* the SWIG interface file instead.
|
7
|
+
* ----------------------------------------------------------------------------- */
|
8
|
+
|
9
|
+
namespace Xapian {
|
10
|
+
|
11
|
+
using System;
|
12
|
+
using System.Runtime.InteropServices;
|
13
|
+
|
14
|
+
public class TermIterator : IDisposable {
|
15
|
+
private HandleRef swigCPtr;
|
16
|
+
protected bool swigCMemOwn;
|
17
|
+
|
18
|
+
internal TermIterator(IntPtr cPtr, bool cMemoryOwn) {
|
19
|
+
swigCMemOwn = cMemoryOwn;
|
20
|
+
swigCPtr = new HandleRef(this, cPtr);
|
21
|
+
}
|
22
|
+
|
23
|
+
internal static HandleRef getCPtr(TermIterator obj) {
|
24
|
+
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
|
25
|
+
}
|
26
|
+
|
27
|
+
~TermIterator() {
|
28
|
+
Dispose();
|
29
|
+
}
|
30
|
+
|
31
|
+
public virtual void Dispose() {
|
32
|
+
lock(this) {
|
33
|
+
if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
|
34
|
+
swigCMemOwn = false;
|
35
|
+
XapianPINVOKE.delete_TermIterator(swigCPtr);
|
36
|
+
}
|
37
|
+
swigCPtr = new HandleRef(null, IntPtr.Zero);
|
38
|
+
GC.SuppressFinalize(this);
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
public static TermIterator operator++(TermIterator it) {
|
43
|
+
return it.Next();
|
44
|
+
}
|
45
|
+
public override bool Equals(object o) {
|
46
|
+
return o is TermIterator && Equals((TermIterator)o);
|
47
|
+
}
|
48
|
+
public static bool operator==(TermIterator a, TermIterator b) {
|
49
|
+
if ((object)a == (object)b) return true;
|
50
|
+
if ((object)a == null || (object)b == null) return false;
|
51
|
+
return a.Equals(b);
|
52
|
+
}
|
53
|
+
public static bool operator!=(TermIterator a, TermIterator b) {
|
54
|
+
if ((object)a == (object)b) return false;
|
55
|
+
if ((object)a == null || (object)b == null) return true;
|
56
|
+
return !a.Equals(b);
|
57
|
+
}
|
58
|
+
// Implementing GetHashCode() to always return 0 is rather lame, but
|
59
|
+
// using iterators as keys in a hash table would be rather strange.
|
60
|
+
public override int GetHashCode() { return 0; }
|
61
|
+
|
62
|
+
public TermIterator() : this(XapianPINVOKE.new_TermIterator__SWIG_0(), true) {
|
63
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
64
|
+
}
|
65
|
+
|
66
|
+
public TermIterator(TermIterator other) : this(XapianPINVOKE.new_TermIterator__SWIG_1(TermIterator.getCPtr(other)), true) {
|
67
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
68
|
+
}
|
69
|
+
|
70
|
+
public string GetTerm() {
|
71
|
+
string ret = XapianPINVOKE.TermIterator_GetTerm(swigCPtr);
|
72
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
73
|
+
return ret;
|
74
|
+
}
|
75
|
+
|
76
|
+
public TermIterator Next() {
|
77
|
+
TermIterator ret = new TermIterator(XapianPINVOKE.TermIterator_Next(swigCPtr), false);
|
78
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
79
|
+
return ret;
|
80
|
+
}
|
81
|
+
|
82
|
+
public bool Equals(TermIterator other) {
|
83
|
+
bool ret = XapianPINVOKE.TermIterator_Equals(swigCPtr, TermIterator.getCPtr(other));
|
84
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
85
|
+
return ret;
|
86
|
+
}
|
87
|
+
|
88
|
+
public void SkipTo(string tname) {
|
89
|
+
XapianPINVOKE.TermIterator_SkipTo(swigCPtr, tname);
|
90
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
91
|
+
}
|
92
|
+
|
93
|
+
public uint GetWdf() {
|
94
|
+
uint ret = XapianPINVOKE.TermIterator_GetWdf(swigCPtr);
|
95
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
96
|
+
return ret;
|
97
|
+
}
|
98
|
+
|
99
|
+
public uint GetTermFreq() {
|
100
|
+
uint ret = XapianPINVOKE.TermIterator_GetTermFreq(swigCPtr);
|
101
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
102
|
+
return ret;
|
103
|
+
}
|
104
|
+
|
105
|
+
public PositionIterator PositionListBegin() {
|
106
|
+
PositionIterator ret = new PositionIterator(XapianPINVOKE.TermIterator_PositionListBegin(swigCPtr), true);
|
107
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
108
|
+
return ret;
|
109
|
+
}
|
110
|
+
|
111
|
+
public PositionIterator PositionListEnd() {
|
112
|
+
PositionIterator ret = new PositionIterator(XapianPINVOKE.TermIterator_PositionListEnd(swigCPtr), true);
|
113
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
114
|
+
return ret;
|
115
|
+
}
|
116
|
+
|
117
|
+
public string GetDescription() {
|
118
|
+
string ret = XapianPINVOKE.TermIterator_GetDescription(swigCPtr);
|
119
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
120
|
+
return ret;
|
121
|
+
}
|
122
|
+
|
123
|
+
}
|
124
|
+
|
125
|
+
}
|
@@ -0,0 +1,107 @@
|
|
1
|
+
/* ----------------------------------------------------------------------------
|
2
|
+
* This file was automatically generated by SWIG (http://www.swig.org).
|
3
|
+
* Version 1.3.32
|
4
|
+
*
|
5
|
+
* Do not make changes to this file unless you know what you are doing--modify
|
6
|
+
* the SWIG interface file instead.
|
7
|
+
* ----------------------------------------------------------------------------- */
|
8
|
+
|
9
|
+
namespace Xapian {
|
10
|
+
|
11
|
+
using System;
|
12
|
+
using System.Runtime.InteropServices;
|
13
|
+
|
14
|
+
public class TradWeight : Weight {
|
15
|
+
private HandleRef swigCPtr;
|
16
|
+
|
17
|
+
internal TradWeight(IntPtr cPtr, bool cMemoryOwn) : base(XapianPINVOKE.TradWeightUpcast(cPtr), cMemoryOwn) {
|
18
|
+
swigCPtr = new HandleRef(this, cPtr);
|
19
|
+
}
|
20
|
+
|
21
|
+
internal static HandleRef getCPtr(TradWeight obj) {
|
22
|
+
return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
|
23
|
+
}
|
24
|
+
|
25
|
+
~TradWeight() {
|
26
|
+
Dispose();
|
27
|
+
}
|
28
|
+
|
29
|
+
public override void Dispose() {
|
30
|
+
lock(this) {
|
31
|
+
if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
|
32
|
+
swigCMemOwn = false;
|
33
|
+
XapianPINVOKE.delete_TradWeight(swigCPtr);
|
34
|
+
}
|
35
|
+
swigCPtr = new HandleRef(null, IntPtr.Zero);
|
36
|
+
GC.SuppressFinalize(this);
|
37
|
+
base.Dispose();
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
public TradWeight(double k) : this(XapianPINVOKE.new_TradWeight__SWIG_0(k), true) {
|
42
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
43
|
+
}
|
44
|
+
|
45
|
+
public TradWeight() : this(XapianPINVOKE.new_TradWeight__SWIG_1(), true) {
|
46
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
47
|
+
}
|
48
|
+
|
49
|
+
public TradWeight Clone() {
|
50
|
+
IntPtr cPtr = XapianPINVOKE.TradWeight_Clone(swigCPtr);
|
51
|
+
TradWeight ret = (cPtr == IntPtr.Zero) ? null : new TradWeight(cPtr, false);
|
52
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
53
|
+
return ret;
|
54
|
+
}
|
55
|
+
|
56
|
+
public override string Name() {
|
57
|
+
string ret = XapianPINVOKE.TradWeight_Name(swigCPtr);
|
58
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
59
|
+
return ret;
|
60
|
+
}
|
61
|
+
|
62
|
+
public override string Serialise() {
|
63
|
+
string ret = XapianPINVOKE.TradWeight_Serialise(swigCPtr);
|
64
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
65
|
+
return ret;
|
66
|
+
}
|
67
|
+
|
68
|
+
public override Weight Unserialise(string s) {
|
69
|
+
IntPtr cPtr = XapianPINVOKE.TradWeight_Unserialise(swigCPtr, s);
|
70
|
+
TradWeight ret = (cPtr == IntPtr.Zero) ? null : new TradWeight(cPtr, false);
|
71
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
72
|
+
return ret;
|
73
|
+
}
|
74
|
+
|
75
|
+
public override double GetSumPart(uint wdf, double len) {
|
76
|
+
double ret = XapianPINVOKE.TradWeight_GetSumPart(swigCPtr, wdf, len);
|
77
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
78
|
+
return ret;
|
79
|
+
}
|
80
|
+
|
81
|
+
public override double GetMaxPart() {
|
82
|
+
double ret = XapianPINVOKE.TradWeight_GetMaxPart(swigCPtr);
|
83
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
84
|
+
return ret;
|
85
|
+
}
|
86
|
+
|
87
|
+
public override double GetSumExtra(double len) {
|
88
|
+
double ret = XapianPINVOKE.TradWeight_GetSumExtra(swigCPtr, len);
|
89
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
90
|
+
return ret;
|
91
|
+
}
|
92
|
+
|
93
|
+
public override double GetMaxExtra() {
|
94
|
+
double ret = XapianPINVOKE.TradWeight_GetMaxExtra(swigCPtr);
|
95
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
96
|
+
return ret;
|
97
|
+
}
|
98
|
+
|
99
|
+
public override bool GetSumPartNeedsDocLength() {
|
100
|
+
bool ret = XapianPINVOKE.TradWeight_GetSumPartNeedsDocLength(swigCPtr);
|
101
|
+
if (XapianPINVOKE.SWIGPendingException.Pending) throw XapianPINVOKE.SWIGPendingException.Retrieve();
|
102
|
+
return ret;
|
103
|
+
}
|
104
|
+
|
105
|
+
}
|
106
|
+
|
107
|
+
}
|