pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / src / java / org / apache / lucene / search / SpanFilterResult.java
diff --git a/lucene-java-3.5.0/lucene/src/java/org/apache/lucene/search/SpanFilterResult.java b/lucene-java-3.5.0/lucene/src/java/org/apache/lucene/search/SpanFilterResult.java
new file mode 100644 (file)
index 0000000..f07d77a
--- /dev/null
@@ -0,0 +1,116 @@
+package org.apache.lucene.search;
+/**
+ * Copyright 2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+import java.util.ArrayList;
+
+import java.util.List;
+
+
+/**
+ *  The results of a SpanQueryFilter.  Wraps the BitSet and the position information from the SpanQuery
+ *
+ * @lucene.experimental 
+ *
+ **/
+public class SpanFilterResult {
+  private DocIdSet docIdSet;
+  private List<PositionInfo> positions;//Spans spans;
+  
+  /**
+  *
+  * @param docIdSet The DocIdSet for the Filter
+  * @param positions A List of {@link org.apache.lucene.search.SpanFilterResult.PositionInfo} objects
+  */
+  public SpanFilterResult(DocIdSet docIdSet, List<PositionInfo> positions) {
+    this.docIdSet = docIdSet;
+    this.positions = positions;
+  }
+  
+  /**
+   * The first entry in the array corresponds to the first "on" bit.
+   * Entries are increasing by document order
+   * @return A List of PositionInfo objects
+   */
+  public List<PositionInfo> getPositions() {
+    return positions;
+  }
+
+  /** Returns the docIdSet */
+  public DocIdSet getDocIdSet() {
+    return docIdSet;
+  }
+
+  public static class PositionInfo {
+    private int doc;
+    private List<StartEnd> positions;
+
+
+    public PositionInfo(int doc) {
+      this.doc = doc;
+      positions = new ArrayList<StartEnd>();
+    }
+
+    public void addPosition(int start, int end)
+    {
+      positions.add(new StartEnd(start, end));
+    }
+
+    public int getDoc() {
+      return doc;
+    }
+
+    /**
+     *
+     * @return Positions
+     */
+    public List<StartEnd> getPositions() {
+      return positions;
+    }
+  }
+
+  public static class StartEnd
+  {
+    private int start;
+    private int end;
+
+
+    public StartEnd(int start, int end) {
+      this.start = start;
+      this.end = end;
+    }
+
+    /**
+     *
+     * @return The end position of this match
+     */
+    public int getEnd() {
+      return end;
+    }
+
+    /**
+     * The Start position
+     * @return The start position of this match
+     */
+    public int getStart() {
+      return start;
+    }
+
+  }
+}
+
+
+