blob: 33ebc7349ec860502eb2391ab18a0c920899495a [file] [log] [blame]
Nils Diewaldf399a672013-11-18 17:55:22 +00001package de.ids_mannheim.korap;
2
Nils Diewaldf399a672013-11-18 17:55:22 +00003import de.ids_mannheim.korap.filter.BooleanFilter;
4import de.ids_mannheim.korap.filter.RegexFilter;
Nils Diewaldf399a672013-11-18 17:55:22 +00005
6import org.slf4j.Logger;
7import org.slf4j.LoggerFactory;
Nils Diewaldf399a672013-11-18 17:55:22 +00008
9
10/*
11 Todo: WildCardFilter!
12 Support: delete boolean etc.
13 Support: supports foundries
14*/
15
16/**
17 * @author Nils Diewald
18 *
19 * KorapFilter implements a simple API for creating meta queries
20 * constituing Virtual Collections.
21 */
22
23/*
Nils Diewaldf399a672013-11-18 17:55:22 +000024Suche XYZ in allen Documenten in den Foundries "Treetagger" und "MATE", die entweder den Texttyp "sports" oder den Texttyp "news" haben, bis höchsten 2009 publiziert wurden und deren Autor auf den regulären Ausdruck "Peter .+?" matcht.
25
Nils Diewaldbaf68c52013-11-20 13:22:19 +000026textClass
27ID
28title
29subTitle
30author
31corpusID
32pubDate
33pubPlace
34
Nils Diewaldf399a672013-11-18 17:55:22 +000035*/
36
37public class KorapFilter {
Nils Diewaldbaf68c52013-11-20 13:22:19 +000038 private BooleanFilter filter;
Nils Diewaldf399a672013-11-18 17:55:22 +000039
40 // Logger
41 private final static Logger jlog = LoggerFactory.getLogger(KorapFilter.class);
42
Nils Diewaldbaf68c52013-11-20 13:22:19 +000043 public BooleanFilter and (String type, String ... terms) {
44 BooleanFilter bf = new BooleanFilter();
45 bf.and(type, terms);
Nils Diewaldf399a672013-11-18 17:55:22 +000046 return bf;
47 };
48
Nils Diewaldbaf68c52013-11-20 13:22:19 +000049 public BooleanFilter or (String type, String ... terms) {
50 BooleanFilter bf = new BooleanFilter();
51 bf.or(type, terms);
52 return bf;
Nils Diewaldf399a672013-11-18 17:55:22 +000053 };
54
Nils Diewaldbaf68c52013-11-20 13:22:19 +000055 public BooleanFilter and (String type, RegexFilter re) {
56 BooleanFilter bf = new BooleanFilter();
57 bf.and(type, re);
58 return bf;
Nils Diewaldf399a672013-11-18 17:55:22 +000059 };
60
Nils Diewaldbaf68c52013-11-20 13:22:19 +000061 public BooleanFilter or (String type, RegexFilter re) {
62 BooleanFilter bf = new BooleanFilter();
63 bf.or(type, re);
64 return bf;
Nils Diewaldf399a672013-11-18 17:55:22 +000065 };
66
Nils Diewaldbaf68c52013-11-20 13:22:19 +000067 public BooleanFilter since (String date) {
68 BooleanFilter bf = new BooleanFilter();
69 bf.since(date);
70 return bf;
Nils Diewaldf399a672013-11-18 17:55:22 +000071 };
72
Nils Diewaldbaf68c52013-11-20 13:22:19 +000073 public BooleanFilter till (String date) {
74 BooleanFilter bf = new BooleanFilter();
75 bf.till(date);
76 return bf;
Nils Diewaldf399a672013-11-18 17:55:22 +000077 };
78
Nils Diewaldbaf68c52013-11-20 13:22:19 +000079 public BooleanFilter date (String date) {
80 BooleanFilter bf = new BooleanFilter();
81 bf.date(date);
82 return bf;
83 };
Nils Diewaldf399a672013-11-18 17:55:22 +000084
Nils Diewaldbaf68c52013-11-20 13:22:19 +000085 public BooleanFilter between (String date1, String date2) {
86 BooleanFilter bf = new BooleanFilter();
87 bf.between(date1, date2);
88 return bf;
89 };
Nils Diewaldf399a672013-11-18 17:55:22 +000090
Nils Diewaldbaf68c52013-11-20 13:22:19 +000091 public RegexFilter re (String regex) {
92 return new RegexFilter(regex);
93 };
Nils Diewaldf399a672013-11-18 17:55:22 +000094};