Skip to content

Commit 184f287

Browse files
committedJan 30, 2018
Hmmmmm
1 parent fd04d75 commit 184f287

File tree

5 files changed

+114
-6
lines changed

5 files changed

+114
-6
lines changed
 

‎src/main/java/org/socialsignin/spring/data/dynamodb/query/Query.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -28,16 +28,16 @@ public interface Query<T> {
2828
* @throws IllegalStateException if called for a Java
2929
* Persistence query language UPDATE or DELETE statement
3030
*/
31-
public List<T> getResultList();
31+
List<T> getResultList();
3232

3333
/**
3434
* Execute a SELECT query that returns a single result.
3535
* @return the result
3636
*/
37-
public T getSingleResult();
37+
T getSingleResult();
3838

3939

40-
public void setScanEnabled(boolean scanEnabled);
41-
public void setScanCountEnabled(boolean scanCountEnabled);
40+
void setScanEnabled(boolean scanEnabled);
41+
void setScanCountEnabled(boolean scanCountEnabled);
4242

4343
}

‎src/main/java/org/socialsignin/spring/data/dynamodb/repository/query/DynamoDBQueryCriteria.java

+4
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@
2525
*/
2626
public interface DynamoDBQueryCriteria<T, ID> {
2727

28+
default DynamoDBQueryCriteria<T, ID> NULL() {
29+
return new NullDynamoDBQueryCriteria();
30+
}
31+
2832
DynamoDBQueryCriteria<T, ID> withSingleValueCriteria(String propertyName, ComparisonOperator comparisonOperator,
2933
Object value, Class<?> type);
3034

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
package org.socialsignin.spring.data.dynamodb.repository.query;
2+
3+
import com.amazonaws.services.dynamodbv2.model.ComparisonOperator;
4+
import org.socialsignin.spring.data.dynamodb.core.DynamoDBOperations;
5+
import org.socialsignin.spring.data.dynamodb.query.Query;
6+
import org.springframework.data.domain.Sort;
7+
8+
import java.util.Collections;
9+
import java.util.List;
10+
11+
public class NullDynamoDBQueryCriteria<T, ID> implements DynamoDBQueryCriteria<T, ID> {
12+
13+
private static final Query<Object> EMPTY_QUERY_RESULT = new Query<Object>() {
14+
@Override
15+
public List<Object> getResultList() {
16+
return Collections.emptyList();
17+
}
18+
19+
@Override
20+
public Object getSingleResult() {
21+
return null;
22+
}
23+
24+
@Override
25+
public void setScanEnabled(boolean scanEnabled) {
26+
}
27+
28+
@Override
29+
public void setScanCountEnabled(boolean scanCountEnabled) {
30+
}
31+
};
32+
33+
private static final Query<Long> ZERO_QUERY_RESULT = new Query<Long>() {
34+
private final Long ZERO = Long.valueOf(0L);
35+
private final List<Long> ZERO_LIST = Collections.singletonList(ZERO);
36+
37+
@Override
38+
public List<Long> getResultList() {
39+
return ZERO_LIST;
40+
}
41+
42+
@Override
43+
public Long getSingleResult() {
44+
return ZERO;
45+
}
46+
47+
@Override
48+
public void setScanEnabled(boolean scanEnabled) {
49+
}
50+
51+
@Override
52+
public void setScanCountEnabled(boolean scanCountEnabled) {
53+
}
54+
};
55+
56+
57+
@Override
58+
public DynamoDBQueryCriteria<T, ID> withSingleValueCriteria(String propertyName, ComparisonOperator comparisonOperator, Object value, Class<?> type) {
59+
return this;
60+
}
61+
62+
@Override
63+
public DynamoDBQueryCriteria<T, ID> withNoValuedCriteria(String segment, ComparisonOperator null1) {
64+
return this;
65+
}
66+
67+
@Override
68+
public DynamoDBQueryCriteria<T, ID> withPropertyEquals(String segment, Object next, Class<?> type) {
69+
return this;
70+
}
71+
72+
@Override
73+
public DynamoDBQueryCriteria<T, ID> withPropertyIn(String segment, Iterable<?> o, Class<?> type) {
74+
return this;
75+
}
76+
77+
@Override
78+
public DynamoDBQueryCriteria<T, ID> withPropertyBetween(String segment, Object value1, Object value2, Class<?> type) {
79+
return this;
80+
}
81+
82+
@Override
83+
public DynamoDBQueryCriteria<T, ID> withSort(Sort sort) {
84+
return this;
85+
}
86+
87+
@Override
88+
public Query<T> buildQuery(DynamoDBOperations dynamoDBOperations) {
89+
return (Query<T>)EMPTY_QUERY_RESULT;
90+
}
91+
92+
@Override
93+
public Query<Long> buildCountQuery(DynamoDBOperations dynamoDBOperations, boolean pageQuery) {
94+
return ZERO_QUERY_RESULT;
95+
}
96+
}

‎src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/RepositoryFindTest.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import org.springframework.test.context.ContextConfiguration;
2929
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
3030

31+
import java.time.Instant;
3132
import java.util.List;
3233

3334
@RunWith(SpringJUnit4ClassRunner.class)
@@ -51,7 +52,11 @@ public void setUp() {
5152

5253
@Test
5354
public void testFindAll() {
54-
List<User> actual = userRepository.findAllByOrderByName();
55+
//List<User> actual1 = userRepository.findByLeaveDate(Instant.now());
56+
57+
List<User> actual3 = userRepository.findByNameOrderByNameAsc("x");
58+
59+
// List<User> actual = userRepository.findAllByOrderByName();
5560
}
5661
}
5762

‎src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/UserRepository.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,10 @@ public interface UserRepository extends Repository<User, String> {
3131
List<User> findByLeaveDate(Instant leaveDate);
3232

3333
@EnableScan
34-
List<User> findAllByOrderByName();
34+
List<User> findByNameOrderByNameAsc(String name);
35+
36+
@EnableScan
37+
List<User> findAll();
3538

3639
@EnableScan
3740
Optional<User> findByName(String name);

0 commit comments

Comments
 (0)
Please sign in to comment.