DATAMONGO-1418 - Polishing.

Added ticket references. Simplified code.

 Original pull request: #361.
This commit is contained in:
Mark Paluch
2016-06-24 15:32:58 +02:00
parent 0db36aff8f
commit f4a5482005
2 changed files with 11 additions and 4 deletions

View File

@@ -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}.
*

View File

@@ -24,6 +24,9 @@ import org.junit.Test;
*/
public class OutOperationUnitTest {
/**
* @see DATAMONGO-1418
*/
@Test(expected = IllegalArgumentException.class)
public void shouldCheckNPEInCreation() {
new OutOperation(null);