blob: 41ba1035ad9451d7953049db7f80379baa2f90c5 [file] [log] [blame]
Eliza Margarethaa2603fa2014-01-22 10:59:25 +00001package de.ids_mannheim.korap.query.spans;
2
3import java.io.IOException;
Eliza Margarethad28469f2014-03-10 12:42:21 +00004import java.util.ArrayList;
Eliza Margarethaa2603fa2014-01-22 10:59:25 +00005import java.util.Collection;
6
7import org.apache.lucene.search.spans.Spans;
8
9/** A span kept as a candidate for matching with another Span
10 * @author margaretha
11 * */
12public class CandidateSpan {
13 private int doc,start,end;
14 private long cost;
Eliza Margarethad28469f2014-03-10 12:42:21 +000015 private Collection<byte[]> payloads = new ArrayList<>();
Eliza Margaretha8e274e32014-01-28 15:09:30 +000016 private int position;
Eliza Margaretha6651fc32014-02-18 14:57:47 +000017 private CandidateSpan childSpan; // used for multiple distance with unordered constraint
Eliza Margarethaa2603fa2014-01-22 10:59:25 +000018
19 public CandidateSpan(Spans span) throws IOException {
20 this.doc = span.doc();
21 this.start = span.start();
22 this.end = span.end();
Eliza Margarethad28469f2014-03-10 12:42:21 +000023 this.cost = span.cost();
24 if (span.isPayloadAvailable())
25 setPayloads(span.getPayload());
Eliza Margaretha8e274e32014-01-28 15:09:30 +000026 }
27
28 public CandidateSpan(Spans span, int position) throws IOException {
29 this(span);
30 this.position = position;
Eliza Margarethaa2603fa2014-01-22 10:59:25 +000031 }
32
Eliza Margaretha9738c392014-02-03 17:04:53 +000033 public CandidateSpan(int start, int end, int doc, long cost,
34 Collection<byte[]> payloads) {
35 this.start = start;
36 this.end = end;
37 this.doc = doc;
38 this.cost = cost;
Eliza Margarethad28469f2014-03-10 12:42:21 +000039 if (payloads != null) setPayloads(payloads);
Eliza Margaretha9738c392014-02-03 17:04:53 +000040 }
41
Eliza Margarethaa2603fa2014-01-22 10:59:25 +000042 public int getDoc() {
43 return doc;
44 }
45 public void setDoc(int doc) {
46 this.doc = doc;
47 }
48 public int getStart() {
49 return start;
50 }
51 public void setStart(int start) {
52 this.start = start;
53 }
54 public int getEnd() {
55 return end;
56 }
57 public void setEnd(int end) {
58 this.end = end;
59 }
60
61 public Collection<byte[]> getPayloads() {
62 return payloads;
63 }
64
65 public void setPayloads(Collection<byte[]> payloads) {
Eliza Margarethad28469f2014-03-10 12:42:21 +000066 for (byte[] b : payloads){
67 this.payloads.add(b.clone());
68 }
Eliza Margarethaa2603fa2014-01-22 10:59:25 +000069 }
70
71 public long getCost() {
72 return cost;
73 }
74
75 public void setCost(long cost) {
76 this.cost = cost;
77 }
Eliza Margaretha8e274e32014-01-28 15:09:30 +000078
79 public int getPosition() {
80 return position;
81 }
82
83 public void setPosition(int position) {
84 this.position = position;
85 }
Eliza Margaretha6651fc32014-02-18 14:57:47 +000086
87 public CandidateSpan getChildSpan() {
88 return childSpan;
89 }
90
91 public void setChildSpan(CandidateSpan childSpan) {
92 this.childSpan = childSpan;
93 }
Eliza Margarethaa2603fa2014-01-22 10:59:25 +000094}