1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
package org.traccar.storage.query;
public interface Condition {
class Equals extends Compare {
public Equals(String column, String variable) {
this(column, variable, null);
}
public Equals(String column, String variable, Object value) {
super(column, "=", variable, value);
}
}
class Compare implements Condition {
private final String column;
private final String operator;
private final String variable;
private final Object value;
public Compare(String column, String operator, String variable, Object value) {
this.column = column;
this.operator = operator;
this.variable = variable;
this.value = value;
}
public String getColumn() {
return column;
}
public String getOperator() {
return operator;
}
public String getVariable() {
return variable;
}
public Object getValue() {
return value;
}
}
class Between implements Condition {
private final String column;
private final String fromVariable;
private final Object fromValue;
private final String toVariable;
private final Object toValue;
public Between(String column, String fromVariable, Object fromValue, String toVariable, Object toValue) {
this.column = column;
this.fromVariable = fromVariable;
this.fromValue = fromValue;
this.toVariable = toVariable;
this.toValue = toValue;
}
public String getColumn() {
return column;
}
public String getFromVariable() {
return fromVariable;
}
public Object getFromValue() {
return fromValue;
}
public String getToVariable() {
return toVariable;
}
public Object getToValue() {
return toValue;
}
}
class Or extends Binary {
public Or(Condition first, Condition second) {
super(first, second, "OR");
}
}
class And extends Binary {
public And(Condition first, Condition second) {
super(first, second, "AND");
}
}
class Binary implements Condition {
private final Condition first;
private final Condition second;
private final String operator;
public Binary(Condition first, Condition second, String operator) {
this.first = first;
this.second = second;
this.operator = operator;
}
public Condition getFirst() {
return first;
}
public Condition getSecond() {
return second;
}
public String getOperator() {
return operator;
}
}
}
|