Skip to content

Commit 8118f13

Browse files
feat(logical-operators): add Operator ISNULL for filtering on NULL values (#4)
1 parent 9665201 commit 8118f13

File tree

5 files changed

+67
-2
lines changed

5 files changed

+67
-2
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>fr.ouestfrance.querydsl</groupId>
66
<artifactId>querydsl</artifactId>
7-
<version>1.2.1-SNAPSHOT</version>
7+
<version>1.3.0-SNAPSHOT</version>
88
<name>querydsl</name>
99
<description>Unified queryDSL based on annotations</description>
1010
<url>https://github.com/ouest-france/querydsl</url>

src/main/java/fr/ouestfrance/querydsl/FilterOperation.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package fr.ouestfrance.querydsl;
22

33
import fr.ouestfrance.querydsl.service.validators.ValidatedBy;
4+
import fr.ouestfrance.querydsl.service.validators.impl.BooleanValidator;
45
import fr.ouestfrance.querydsl.service.validators.impl.CollectionValidator;
56
import fr.ouestfrance.querydsl.service.validators.impl.ComparableValidator;
67
import fr.ouestfrance.querydsl.service.validators.impl.StringValidator;
@@ -72,4 +73,11 @@ class IN implements FilterOperation {
7273
@ValidatedBy(CollectionValidator.class)
7374
class NOTIN implements FilterOperation {
7475
}
76+
77+
/**
78+
* Is null Operation
79+
*/
80+
@ValidatedBy(BooleanValidator.class)
81+
class ISNULL implements FilterOperation {
82+
}
7583
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
package fr.ouestfrance.querydsl.service.validators.impl;
2+
3+
import fr.ouestfrance.querydsl.service.validators.FilterFieldValidator;
4+
import lombok.NoArgsConstructor;
5+
6+
/**
7+
* Validator that handle filter on Boolean
8+
*/
9+
@NoArgsConstructor
10+
public class BooleanValidator implements FilterFieldValidator {
11+
@Override
12+
public boolean validate(Class<?> clazz) {
13+
return Boolean.class.isAssignableFrom(clazz);
14+
}
15+
16+
@Override
17+
public String message() {
18+
return "should be applied to Boolean";
19+
}
20+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package fr.ouestfrance.querydsl.service.validators.impl;
2+
3+
import fr.ouestfrance.querydsl.service.validators.FilterFieldValidator;
4+
import org.junit.jupiter.api.Test;
5+
6+
import java.math.BigDecimal;
7+
import java.time.LocalDate;
8+
import java.time.LocalDateTime;
9+
import java.util.*;
10+
11+
import static org.junit.jupiter.api.Assertions.assertFalse;
12+
import static org.junit.jupiter.api.Assertions.assertTrue;
13+
14+
class BooleanValidatorTest {
15+
16+
private final FilterFieldValidator validator = new BooleanValidator();
17+
@Test
18+
void shouldValidate(){
19+
assertTrue(validator.validate(Boolean.class));
20+
}
21+
22+
@Test
23+
void shouldUnValidate(){
24+
assertFalse(validator.validate(String.class));
25+
assertFalse(validator.validate(Double.class));
26+
assertFalse(validator.validate(LocalDate.class));
27+
assertFalse(validator.validate(LocalDateTime.class));
28+
assertFalse(validator.validate(Date.class));
29+
assertFalse(validator.validate(UUID.class));
30+
assertFalse(validator.validate(Integer.class));
31+
assertFalse(validator.validate(BigDecimal.class));
32+
assertFalse(validator.validate(Set.class));
33+
assertFalse(validator.validate(ArrayList.class));
34+
assertFalse(validator.validate(LinkedList.class));
35+
assertFalse(validator.validate(HashSet.class));
36+
}
37+
}

src/test/java/fr/ouestfrance/querydsl/service/validators/impl/ComprableValidatorTest.java renamed to src/test/java/fr/ouestfrance/querydsl/service/validators/impl/ComparableValidatorTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
import static org.junit.jupiter.api.Assertions.assertFalse;
1212
import static org.junit.jupiter.api.Assertions.assertTrue;
1313

14-
class ComprableValidatorTest {
14+
class ComparableValidatorTest {
1515

1616
private final FilterFieldValidator validator = new ComparableValidator();
1717
@Test

0 commit comments

Comments
 (0)