blob: 12aded1bbdab0ba4c327cdcc8c120e5724544f72 [file] [log] [blame]
Michael Hanled5658f2014-02-07 22:24:46 +00001package de.ids_mannheim.korap.query.serialize;
2
Michael Hanl034be0d2014-02-14 10:17:34 +00003import java.util.LinkedHashMap;
Michael Hanled5658f2014-02-07 22:24:46 +00004import java.util.LinkedList;
5import java.util.List;
6import java.util.Map;
7
8/**
9 * @author hanl
10 * @date 07/02/2014
11 */
Michael Hanldf206ab2014-05-13 10:22:27 +000012public class MetaQueryBuilder {
Michael Hanled5658f2014-02-07 22:24:46 +000013
Michael Hanled5658f2014-02-07 22:24:46 +000014 private Map meta;
15
Michael Hanldf206ab2014-05-13 10:22:27 +000016 public MetaQueryBuilder() {
Michael Hanl034be0d2014-02-14 10:17:34 +000017 this.meta = new LinkedHashMap();
Michael Hanled5658f2014-02-07 22:24:46 +000018 }
19
Michael Hanlb9f3fd12014-06-03 11:38:27 +000020 /**
21 * context segment if context is either of type char or token.
22 * size can differ for left and right span
23 * @param left
24 * @param leftType
25 * @param right
26 * @param rightType
27 * @return
28 */
Michael Hanldf206ab2014-05-13 10:22:27 +000029 public MetaQueryBuilder addContext(Integer left, String leftType,
Michael Hanlbdcb00e2014-05-21 19:18:05 +000030 Integer right, String rightType) {
Michael Hanl034be0d2014-02-14 10:17:34 +000031 Map map = new LinkedHashMap();
Michael Hanled5658f2014-02-07 22:24:46 +000032 List l = new LinkedList();
33 List r = new LinkedList();
Michael Hanl034be0d2014-02-14 10:17:34 +000034 l.add(leftType);
Michael Hanled5658f2014-02-07 22:24:46 +000035 l.add(left);
36 map.put("left", l);
Michael Hanl034be0d2014-02-14 10:17:34 +000037 r.add(rightType);
Michael Hanled5658f2014-02-07 22:24:46 +000038 r.add(right);
39 map.put("right", r);
40 meta.put("context", map);
41 return this;
42 }
43
Michael Hanlb9f3fd12014-06-03 11:38:27 +000044 /**
45 * context if of type paragraph or sentence where left and right size delimiters are irrelevant.
46 * @param type
47 * @return
48 */
49 public MetaQueryBuilder addContext(String type) {
50 addEntry("context", type);
51 return this;
52 }
53
54
Michael Hanldf206ab2014-05-13 10:22:27 +000055 public MetaQueryBuilder addEntry(String name, Object value) {
Michael Hanled5658f2014-02-07 22:24:46 +000056 meta.put(name, value);
57 return this;
58 }
59
Michael Hanl034be0d2014-02-14 10:17:34 +000060 public Map raw() {
61 return meta;
62 }
Michael Hanled5658f2014-02-07 22:24:46 +000063}