DATAMONGO-1418 - Polishing.
Added ticket references. Simplified code. Original pull request: #361.
This commit is contained in:
@@ -25,7 +25,7 @@ import org.springframework.data.domain.Sort;
|
||||
import org.springframework.data.domain.Sort.Direction;
|
||||
import org.springframework.data.mongodb.core.aggregation.ExposedFields.ExposedField;
|
||||
import org.springframework.data.mongodb.core.aggregation.ExposedFields.FieldReference;
|
||||
import org.springframework.data.mongodb.core.aggregation.Fields.AggregationField;
|
||||
import org.springframework.data.mongodb.core.aggregation.Fields.*;
|
||||
import org.springframework.data.mongodb.core.aggregation.FieldsExposingAggregationOperation.InheritsFieldsAggregationOperation;
|
||||
import org.springframework.data.mongodb.core.query.Criteria;
|
||||
import org.springframework.data.mongodb.core.query.NearQuery;
|
||||
@@ -161,9 +161,9 @@ public class Aggregation {
|
||||
Assert.isTrue(!aggregationOperations.isEmpty(), "At least one AggregationOperation has to be provided");
|
||||
Assert.notNull(options, "AggregationOptions must not be null!");
|
||||
|
||||
//check $out is the last operation if exist
|
||||
for (int i = 0; i < aggregationOperations.size(); i++) {
|
||||
if (aggregationOperations.get(i) instanceof OutOperation && i != aggregationOperations.size() - 1) {
|
||||
// check $out is the last operation if it exists
|
||||
for (AggregationOperation aggregationOperation : aggregationOperations) {
|
||||
if (aggregationOperation instanceof OutOperation && !isLast(aggregationOperation, aggregationOperations)) {
|
||||
throw new IllegalArgumentException("The $out operator must be the last stage in the pipeline.");
|
||||
}
|
||||
}
|
||||
@@ -172,6 +172,10 @@ public class Aggregation {
|
||||
this.options = options;
|
||||
}
|
||||
|
||||
private boolean isLast(AggregationOperation aggregationOperation, List<AggregationOperation> aggregationOperations) {
|
||||
return aggregationOperations.indexOf(aggregationOperation) == aggregationOperations.size() - 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* A pointer to the previous {@link AggregationOperation}.
|
||||
*
|
||||
|
||||
@@ -24,6 +24,9 @@ import org.junit.Test;
|
||||
*/
|
||||
public class OutOperationUnitTest {
|
||||
|
||||
/**
|
||||
* @see DATAMONGO-1418
|
||||
*/
|
||||
@Test(expected = IllegalArgumentException.class)
|
||||
public void shouldCheckNPEInCreation() {
|
||||
new OutOperation(null);
|
||||
|
||||
Reference in New Issue
Block a user