Skip to content

Commit b91f4f0

Browse files
committed
#5 added IN operator in criteria
1 parent 9760e9e commit b91f4f0

22 files changed

+382
-25
lines changed

build.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,12 @@ dependencies {
6363
signing {
6464
sign publishing.publications
6565
}
66+
/*spotbugsMain {
67+
reports {
68+
xml.enabled = false
69+
html.enabled = true
70+
}
71+
}*/
6672

6773
publishing {
6874
publications {

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/And.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,9 @@ public And(List<Criteria> criteria) {
2020
public GroupConditionalOperator getGroupConditionalOperator() {
2121
return GroupConditionalOperator.AND;
2222
}
23+
24+
@Override
25+
public CriteriaType getCriteriaType() {
26+
return CriteriaType.GROUP;
27+
}
2328
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/Criteria.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,11 @@
99
@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.WRAPPER_OBJECT)
1010
@JsonSubTypes({
1111
@JsonSubTypes.Type(value = SimpleCriteria.class),
12-
@JsonSubTypes.Type(value = GroupCriteria.class)
12+
@JsonSubTypes.Type(value = GroupCriteria.class),
13+
@JsonSubTypes.Type(value = MultiValueCriteria.class)
1314
})
14-
public abstract class Criteria {
15+
public interface Criteria {
1516

16-
public abstract boolean isGroup();
17+
CriteriaType getCriteriaType();
1718

1819
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package io.github.eaxdev.jsonsql4j.model.criteria;
2+
3+
/**
4+
* @author eaxdev
5+
*/
6+
public enum CriteriaType {
7+
8+
GROUP,
9+
10+
SIMPLE,
11+
12+
MULTI_VALUE
13+
14+
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/Eq.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,9 @@ public Eq(String fieldName, String value) {
2020
public SimpleConditionalOperator getSimpleConditionalOperator() {
2121
return SimpleConditionalOperator.EQUALS_TO;
2222
}
23+
24+
@Override
25+
public CriteriaType getCriteriaType() {
26+
return CriteriaType.SIMPLE;
27+
}
2328
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/Ge.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ public Ge(String fieldName, String value) {
2020
public SimpleConditionalOperator getSimpleConditionalOperator() {
2121
return SimpleConditionalOperator.GREATER_THAN_EQUALS;
2222
}
23+
24+
@Override
25+
public CriteriaType getCriteriaType() {
26+
return CriteriaType.SIMPLE;
27+
}
28+
2329
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/GroupCriteria.java

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,10 @@
1818
@Getter
1919
@AllArgsConstructor
2020
@JsonDeserialize(using = GroupCriteriaDeserializer.class)
21-
public abstract class GroupCriteria extends Criteria {
21+
public abstract class GroupCriteria implements Criteria {
2222

2323
protected final List<Criteria> criteria;
2424

2525
public abstract GroupConditionalOperator getGroupConditionalOperator();
2626

27-
@Override
28-
public boolean isGroup() {
29-
return true;
30-
}
31-
3227
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/Gt.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ public Gt(String fieldName, String value) {
2020
public SimpleConditionalOperator getSimpleConditionalOperator() {
2121
return SimpleConditionalOperator.GREATER_THAN;
2222
}
23+
24+
@Override
25+
public CriteriaType getCriteriaType() {
26+
return CriteriaType.SIMPLE;
27+
}
28+
2329
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.github.eaxdev.jsonsql4j.model.criteria;
2+
3+
import com.fasterxml.jackson.annotation.JsonTypeName;
4+
import lombok.Getter;
5+
import lombok.NoArgsConstructor;
6+
7+
import java.util.List;
8+
9+
/**
10+
* @author eaxdev
11+
*/
12+
@Getter
13+
@JsonTypeName("in")
14+
@NoArgsConstructor
15+
public class In extends MultiValueCriteria {
16+
17+
public In(String fieldName, List<String> values) {
18+
super(fieldName, values);
19+
}
20+
21+
@Override
22+
public CriteriaType getCriteriaType() {
23+
return CriteriaType.MULTI_VALUE;
24+
}
25+
26+
@Override
27+
public MultiValueConditionalOperator getMultiValueConditionalOperator() {
28+
return MultiValueConditionalOperator.IN;
29+
}
30+
}

src/main/java/io/github/eaxdev/jsonsql4j/model/criteria/Le.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,10 @@ public Le(String fieldName, String value) {
2020
public SimpleConditionalOperator getSimpleConditionalOperator() {
2121
return SimpleConditionalOperator.LESS_THAN_EQUALS;
2222
}
23+
24+
@Override
25+
public CriteriaType getCriteriaType() {
26+
return CriteriaType.SIMPLE;
27+
}
28+
2329
}

0 commit comments

Comments
 (0)