DATAMONGO-1467 - Polishing.

Original pull request: #431.
This commit is contained in:
Oliver Gierke
2016-12-19 19:42:23 +01:00
parent dc4a30a7f8
commit 7914e8a630
5 changed files with 26 additions and 18 deletions

View File

@@ -40,7 +40,8 @@ import com.mongodb.MongoException;
*/
public class DefaultIndexOperations implements IndexOperations {
public static final String PARTIAL_FILTER_EXPRESSION_KEY = "partialFilterExpression";
private static final String PARTIAL_FILTER_EXPRESSION_KEY = "partialFilterExpression";
private final MongoOperations mongoOperations;
private final String collectionName;
private final QueryMapper mapper;
@@ -166,7 +167,9 @@ public class DefaultIndexOperations implements IndexOperations {
public List<IndexInfo> getIndexInfo() {
return mongoOperations.execute(collectionName, new CollectionCallback<List<IndexInfo>>() {
public List<IndexInfo> doInCollection(DBCollection collection) throws MongoException, DataAccessException {
List<DBObject> dbObjectList = collection.getIndexInfo();
return getIndexData(dbObjectList);
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2016. the original author or authors.
* Copyright 2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,5 +32,4 @@ public interface IndexFilter {
* @return
*/
DBObject getFilterObject();
}

View File

@@ -23,10 +23,11 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
import com.mongodb.DBObject;
import org.springframework.util.Assert;
import org.springframework.util.ObjectUtils;
import com.mongodb.DBObject;
/**
* @author Mark Pollack
* @author Oliver Gierke
@@ -90,10 +91,13 @@ public class IndexInfo {
Object value = keyDbObject.get(key);
if (TWO_D_IDENTIFIERS.contains(value)) {
indexFields.add(IndexField.geo(key));
} else if ("text".equals(value)) {
DBObject weights = (DBObject) sourceDocument.get("weights");
for (String fieldName : weights.keySet()) {
indexFields.add(IndexField.text(fieldName, Float.valueOf(weights.get(fieldName).toString())));
}

View File

@@ -15,8 +15,11 @@
*/
package org.springframework.data.mongodb.core.index;
import lombok.AccessLevel;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.data.mongodb.core.query.CriteriaDefinition;
import org.springframework.util.Assert;
import com.mongodb.DBObject;
@@ -27,15 +30,10 @@ import com.mongodb.DBObject;
* @author Christoph Strobl
* @since 1.10
*/
@RequiredArgsConstructor(access = AccessLevel.PRIVATE)
public class PartialIndexFilter implements IndexFilter {
private final Object filterExpression;
private PartialIndexFilter(Object filterExpression) {
Assert.notNull(filterExpression, "FilterExpression must not be null!");
this.filterExpression = filterExpression;
}
private final @NonNull Object filterExpression;
/**
* Create new {@link PartialIndexFilter} for given {@link DBObject filter expression}.
@@ -43,7 +41,7 @@ public class PartialIndexFilter implements IndexFilter {
* @param where must not be {@literal null}.
* @return
*/
public static PartialIndexFilter filter(DBObject where) {
public static PartialIndexFilter of(DBObject where) {
return new PartialIndexFilter(where);
}
@@ -53,10 +51,14 @@ public class PartialIndexFilter implements IndexFilter {
* @param where must not be {@literal null}.
* @return
*/
public static PartialIndexFilter filter(CriteriaDefinition where) {
public static PartialIndexFilter of(CriteriaDefinition where) {
return new PartialIndexFilter(where);
}
/*
* (non-Javadoc)
* @see org.springframework.data.mongodb.core.index.IndexFilter#getFilterObject()
*/
public DBObject getFilterObject() {
if (filterExpression instanceof DBObject) {

View File

@@ -102,7 +102,7 @@ public class DefaultIndexOperationsIntegrationTests {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
IndexDefinition id = new Index().named("partial-with-criteria").on("k3y", Direction.ASC)
.partial(filter(where("q-t-y").gte(10)));
.partial(of(where("q-t-y").gte(10)));
indexOps.ensureIndex(id);
@@ -119,7 +119,7 @@ public class DefaultIndexOperationsIntegrationTests {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
IndexDefinition id = new Index().named("partial-with-mapped-criteria").on("k3y", Direction.ASC)
.partial(filter(where("quantity").gte(10)));
.partial(of(where("quantity").gte(10)));
indexOps.ensureIndex(id);
@@ -136,7 +136,7 @@ public class DefaultIndexOperationsIntegrationTests {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
IndexDefinition id = new Index().named("partial-with-dbo").on("k3y", Direction.ASC)
.partial(filter(new BasicDBObject("qty", new BasicDBObject("$gte", 10))));
.partial(of(new BasicDBObject("qty", new BasicDBObject("$gte", 10))));
indexOps.ensureIndex(id);
@@ -153,7 +153,7 @@ public class DefaultIndexOperationsIntegrationTests {
assumeThat(mongoVersion.isGreaterThanOrEqualTo(THREE_DOT_TWO), is(true));
IndexDefinition id = new Index().named("partial-with-inheritance").on("k3y", Direction.ASC)
.partial(filter(where("age").gte(10)));
.partial(of(where("age").gte(10)));
indexOps = new DefaultIndexOperations(template,
this.template.getCollectionName(DefaultIndexOperationsIntegrationTestsSample.class),