Project

General

Profile

1
package eu.dnetlib.data.search.web.api;
2

    
3
import java.util.List;
4

    
5
/**
6
 * Created by kiatrop on 28/9/2016.
7
 */
8
public class CQLQueryGeneration {
9

    
10
    public enum Operator {
11
        AND("and"),
12
        OR("or"),
13
        NOT("not"),
14
        EQUAL("equal"),
15
        EXACT("exact");
16

    
17
        private String value;
18
        Operator(String value) {
19
            this.value = value;
20
        }
21
        private String getValue() {
22
            return value;
23
        }
24

    
25
        @Override
26
        public String toString() {
27
            return this.getValue();
28
        }
29

    
30

    
31
    }
32

    
33
    public static void appendSimpleTerm(StringBuilder stringBuilder, Operator queryOperator, String termValue) {
34
        stringBuilder.append(' ').append(queryOperator).append(" (").append(termValue).append(')');
35
    }
36

    
37
    public static void appendSimpleTerms(StringBuilder stringBuilder, Operator queryOperator, List<String> termValues) {
38
        for (String termValue: termValues) {
39
            appendSimpleTerm(stringBuilder, queryOperator, termValue);
40
        }
41
    }
42

    
43
    public static void appendTerm(StringBuilder stringBuilder, Operator queryOperator, String termName, Operator termOperator, String termValue) {
44
        stringBuilder.append(' ').append(queryOperator).append(" ( ").
45
                append(termName).append(' ').append(termOperator).append(' ').append(termValue).append(" )");
46
    }
47

    
48
    public static void appendTerms(StringBuilder stringBuilder, Operator queryOperator, String termName, Operator termOperator, List<String> termValues) {
49
        for (String termValue: termValues) {
50
            appendTerm(stringBuilder, queryOperator, termName, termOperator, termValue);
51
        }
52
    }
53
}
(2-2/8)