Skip to content

Commit 66b9654

Browse files
committed
Added support for java.time.* methods in lambdas.
1 parent 1c4d07d commit 66b9654

File tree

4 files changed

+26
-2
lines changed

4 files changed

+26
-2
lines changed

README.MD

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ You can include the Maven dependency:
6262
<dependency>
6363
<groupId>com.github.collinalpert</groupId>
6464
<artifactId>lambda2sql</artifactId>
65-
<version>2.1</version>
65+
<version>2.1.1</version>
6666
</dependency>
6767
```
6868

pom.xml

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

77
<groupId>com.github.collinalpert</groupId>
88
<artifactId>lambda2sql</artifactId>
9-
<version>2.1</version>
9+
<version>2.1.1</version>
1010
<packaging>jar</packaging>
1111

1212
<name>lambda2sql</name>

src/main/java/com/github/collinalpert/lambda2sql/SqlVisitor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,9 @@
2020
import java.time.chrono.ChronoLocalDate;
2121
import java.time.chrono.ChronoLocalDateTime;
2222
import java.time.temporal.Temporal;
23+
import java.util.ArrayList;
2324
import java.util.HashMap;
25+
import java.util.LinkedList;
2426
import java.util.List;
2527
import java.util.Map;
2628
import java.util.StringJoiner;
@@ -61,6 +63,8 @@ public class SqlVisitor implements ExpressionVisitor<StringBuilder> {
6163
put(String.class.getDeclaredMethod("endsWith", String.class), SqlVisitor.this::stringEndsWith);
6264
put(String.class.getDeclaredMethod("contains", CharSequence.class), SqlVisitor.this::stringContains);
6365
put(List.class.getDeclaredMethod("contains", Object.class), SqlVisitor.this::listContains);
66+
put(ArrayList.class.getDeclaredMethod("contains", Object.class), SqlVisitor.this::listContains);
67+
put(LinkedList.class.getDeclaredMethod("contains", Object.class), SqlVisitor.this::listContains);
6468
} catch (NoSuchMethodException e) {
6569
e.printStackTrace();
6670
}

src/test/java/com/github/collinalpert/lambda2sql/test/Lambda2SqlTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@
99
import java.io.Serializable;
1010
import java.time.LocalDate;
1111
import java.time.LocalTime;
12+
import java.util.ArrayList;
1213
import java.util.Arrays;
14+
import java.util.LinkedList;
1315

1416
class Lambda2SqlTest implements Serializable {
1517

@@ -170,8 +172,26 @@ void testJavaTime() {
170172
@Test
171173
void testContains() {
172174
var ids = Arrays.asList(1L, 2L, 3L, 4L);
175+
var ids2 = new ArrayList<Long>();
176+
ids2.add(2L);
177+
ids2.add(4L);
178+
ids2.add(6L);
179+
ids2.add(8L);
180+
181+
var ids3 = new LinkedList<Long>();
182+
ids3.add(3L);
183+
ids3.add(6L);
184+
ids3.add(9L);
185+
ids3.add(12L);
186+
173187
assertPredicateEqual("person.id IN (1, 2, 3, 4)", person -> ids.contains(person.getId()));
174188
assertPredicateEqual("person.id NOT IN (1, 2, 3, 4)", person -> !ids.contains(person.getId()));
189+
190+
assertPredicateEqual("person.id IN (2, 4, 6, 8)", person -> ids2.contains(person.getId()));
191+
assertPredicateEqual("person.id NOT IN (2, 4, 6, 8)", person -> !ids2.contains(person.getId()));
192+
193+
assertPredicateEqual("person.id IN (3, 6, 9, 12)", person -> ids3.contains(person.getId()));
194+
assertPredicateEqual("person.id NOT IN (3, 6, 9, 12)", person -> !ids3.contains(person.getId()));
175195
}
176196

177197
private void assertPredicateEqual(String expectedSql, SqlPredicate<IPerson> p) {

0 commit comments

Comments
 (0)