aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/org/traccar/storage/query/Condition.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/traccar/storage/query/Condition.java')
-rw-r--r--src/main/java/org/traccar/storage/query/Condition.java42
1 files changed, 38 insertions, 4 deletions
diff --git a/src/main/java/org/traccar/storage/query/Condition.java b/src/main/java/org/traccar/storage/query/Condition.java
index 50d520bc7..82c8e8479 100644
--- a/src/main/java/org/traccar/storage/query/Condition.java
+++ b/src/main/java/org/traccar/storage/query/Condition.java
@@ -2,13 +2,25 @@ package org.traccar.storage.query;
public interface Condition {
- class Equals implements 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 Equals(String column, String variable, Object value) {
+ public Compare(String column, String operator, String variable, Object value) {
this.column = column;
+ this.operator = operator;
this.variable = variable;
this.value = value;
}
@@ -17,6 +29,10 @@ public interface Condition {
return column;
}
+ public String getOperator() {
+ return operator;
+ }
+
public String getVariable() {
return variable;
}
@@ -62,13 +78,27 @@ public interface Condition {
}
}
- class And implements Condition {
+ 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 And(Condition first, Condition second) {
+ public Binary(Condition first, Condition second, String operator) {
this.first = first;
this.second = second;
+ this.operator = operator;
}
public Condition getFirst() {
@@ -78,6 +108,10 @@ public interface Condition {
public Condition getSecond() {
return second;
}
+
+ public String getOperator() {
+ return operator;
+ }
}
}