1515 */
1616package org .socialsignin .spring .data .dynamodb .repository .query ;
1717
18- import java .io .Serializable ;
19- import java .util .ArrayList ;
20- import java .util .Arrays ;
21- import java .util .HashMap ;
22- import java .util .HashSet ;
23- import java .util .List ;
24- import java .util .Map ;
25- import java .util .Map .Entry ;
26- import java .util .Set ;
27-
18+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBMapperTableModel ;
19+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBQueryExpression ;
20+ import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBScanExpression ;
21+ import com .amazonaws .services .dynamodbv2 .model .ComparisonOperator ;
22+ import com .amazonaws .services .dynamodbv2 .model .Condition ;
23+ import com .amazonaws .services .dynamodbv2 .model .QueryRequest ;
2824import org .socialsignin .spring .data .dynamodb .core .DynamoDBOperations ;
2925import org .socialsignin .spring .data .dynamodb .query .CountByHashAndRangeKeyQuery ;
3026import org .socialsignin .spring .data .dynamodb .query .MultipleEntityQueryExpressionQuery ;
3834import org .socialsignin .spring .data .dynamodb .repository .support .DynamoDBIdIsHashAndRangeKeyEntityInformation ;
3935import org .springframework .util .Assert ;
4036
41- import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBMapperTableModel ;
42- import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBQueryExpression ;
43- import com .amazonaws .services .dynamodbv2 .datamodeling .DynamoDBScanExpression ;
44- import com .amazonaws .services .dynamodbv2 .model .ComparisonOperator ;
45- import com .amazonaws .services .dynamodbv2 .model .Condition ;
46- import com .amazonaws .services .dynamodbv2 .model .QueryRequest ;
37+ import java .util .ArrayList ;
38+ import java .util .Arrays ;
39+ import java .util .HashMap ;
40+ import java .util .HashSet ;
41+ import java .util .List ;
42+ import java .util .Map ;
43+ import java .util .Map .Entry ;
44+ import java .util .Set ;
4745
4846/**
4947 * @author Michael Lavelle
5048 */
51- public class DynamoDBEntityWithHashAndRangeKeyCriteria <T , ID extends Serializable > extends AbstractDynamoDBQueryCriteria <T , ID > {
49+ public class DynamoDBEntityWithHashAndRangeKeyCriteria <T , ID > extends AbstractDynamoDBQueryCriteria <T , ID > {
5250
5351 private Object rangeKeyAttributeValue ;
5452 private Object rangeKeyPropertyValue ;
@@ -75,14 +73,14 @@ public DynamoDBEntityWithHashAndRangeKeyCriteria(
7573 this .rangeKeyPropertyName = entityInformation .getRangeKeyPropertyName ();
7674 this .indexRangeKeyPropertyNames = entityInformation .getIndexRangeKeyPropertyNames ();
7775 if (indexRangeKeyPropertyNames == null ) {
78- indexRangeKeyPropertyNames = new HashSet <String >();
76+ indexRangeKeyPropertyNames = new HashSet <>();
7977 }
8078 this .entityInformation = entityInformation ;
8179
8280 }
8381
8482 public Set <String > getIndexRangeKeyAttributeNames () {
85- Set <String > indexRangeKeyAttributeNames = new HashSet <String >();
83+ Set <String > indexRangeKeyAttributeNames = new HashSet <>();
8684 for (String indexRangeKeyPropertyName : indexRangeKeyPropertyNames ) {
8785 indexRangeKeyAttributeNames .add (getAttributeName (indexRangeKeyPropertyName ));
8886 }
@@ -102,12 +100,12 @@ protected boolean isRangeKeySpecified() {
102100 }
103101
104102 protected Query <T > buildSingleEntityLoadQuery (DynamoDBOperations dynamoDBOperations ) {
105- return new SingleEntityLoadByHashAndRangeKeyQuery <T >(dynamoDBOperations , entityInformation .getJavaType (),
103+ return new SingleEntityLoadByHashAndRangeKeyQuery <>(dynamoDBOperations , entityInformation .getJavaType (),
106104 getHashKeyPropertyValue (), getRangeKeyPropertyValue ());
107105 }
108106
109107 protected Query <Long > buildSingleEntityCountQuery (DynamoDBOperations dynamoDBOperations ) {
110- return new CountByHashAndRangeKeyQuery <T >(dynamoDBOperations , entityInformation .getJavaType (),
108+ return new CountByHashAndRangeKeyQuery <>(dynamoDBOperations , entityInformation .getJavaType (),
111109 getHashKeyPropertyValue (), getRangeKeyPropertyValue ());
112110 }
113111
@@ -146,7 +144,7 @@ public DynamoDBQueryExpression<T> buildQueryExpression() {
146144 if (isHashKeySpecified ()) {
147145 T hashKeyPrototype = entityInformation .getHashKeyPropotypeEntityForHashKey (getHashKeyPropertyValue ());
148146 queryExpression .withHashKeyValues (hashKeyPrototype );
149- queryExpression .withRangeKeyConditions (new HashMap <String , Condition >());
147+ queryExpression .withRangeKeyConditions (new HashMap <>());
150148 }
151149
152150 if (isRangeKeySpecified () && !isApplicableForGlobalSecondaryIndex ()) {
@@ -160,7 +158,7 @@ public DynamoDBQueryExpression<T> buildQueryExpression() {
160158
161159 Entry <String , List <Condition >> singlePropertyConditions = propertyConditions .entrySet ().iterator ().next ();
162160
163- List <String > allowedSortProperties = new ArrayList <String >();
161+ List <String > allowedSortProperties = new ArrayList <>();
164162 for (Entry <String , List <Condition >> singlePropertyCondition : propertyConditions .entrySet ()) {
165163 if (entityInformation .getGlobalSecondaryIndexNamesByPropertyName ().keySet ()
166164 .contains (singlePropertyCondition .getKey ())) {
@@ -332,9 +330,8 @@ public boolean isApplicableForQuery() {
332330
333331 public DynamoDBScanExpression buildScanExpression () {
334332
335- if (sort != null ) {
336- throw new UnsupportedOperationException ("Sort not supported for scan expressions" );
337- }
333+ ensureNoSort ();
334+
338335 DynamoDBScanExpression scanExpression = new DynamoDBScanExpression ();
339336 if (isHashKeySpecified ()) {
340337 scanExpression .addFilterCondition (
0 commit comments