From e734277c3c67f42f37f7eb94ebd2aba115d90a1c Mon Sep 17 00:00:00 2001 From: Thomas Risberg Date: Mon, 14 Feb 2011 15:48:12 -0500 Subject: [PATCH] tweaking the MongoOperstions API for consistency across methods --- .../document/mongodb/MongoOperations.java | 14 +++--- .../data/document/mongodb/MongoTemplate.java | 50 +++++++++---------- .../mongodb/query/GeospatialIndex.java | 2 +- .../data/document/mongodb/query/Index.java | 2 +- ...pecification.java => IndexDefinition.java} | 2 +- .../mongodb/repository/MongoQuery.java | 4 +- .../mongodb/MongoOperationsUnitTests.java | 4 +- 7 files changed, 39 insertions(+), 39 deletions(-) rename spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/{IndexSpecification.java => IndexDefinition.java} (79%) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoOperations.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoOperations.java index 35bfe05ca..19eec28f1 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoOperations.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoOperations.java @@ -18,7 +18,7 @@ package org.springframework.data.document.mongodb; import java.util.List; import java.util.Set; -import org.springframework.data.document.mongodb.query.IndexSpecification; +import org.springframework.data.document.mongodb.query.IndexDefinition; import org.springframework.data.document.mongodb.query.Query; import org.springframework.data.document.mongodb.query.Update; @@ -95,12 +95,12 @@ public interface MongoOperations { * Allows for returning a result object, that is a domain object or a collection of domain objects. * * @param return type - * @param action callback object that specifies the MongoDB action * @param collectionName the name of the collection that specifies which DBCollection instance will be passed into + * @param action callback object that specifies the MongoDB action * the callback action. * @return a result object returned by the action or null */ - T execute(CollectionCallback action, String collectionName); + T execute(String collectionName, CollectionCallback action); /** * Executes the given {@link DbCallback} within the same connection to the database so as to ensure @@ -208,21 +208,21 @@ public interface MongoOperations { MongoReader reader); /** - * Ensure that an index for the provided {@link IndexSpecification} exists for the default collection. + * Ensure that an index for the provided {@link IndexDefinition} exists for the default collection. * If not it will be created. * * @param index */ - void ensureIndex(IndexSpecification indexSpecification); + void ensureIndex(IndexDefinition indexDefinition); /** - * Ensure that an index for the provided {@link IndexSpecification} exists. If not it will be + * Ensure that an index for the provided {@link IndexDefinition} exists. If not it will be * created. * * @param collectionName * @param index */ - void ensureIndex(String collectionName, IndexSpecification indexSpecification); + void ensureIndex(String collectionName, IndexDefinition indexDefinition); /** * Map the results of an ad-hoc query on the default MongoDB collection to a single instance of an object diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java index 44817a600..54bb9ea5f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/MongoTemplate.java @@ -33,7 +33,7 @@ import org.springframework.core.convert.ConversionFailedException; import org.springframework.dao.DataAccessException; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.data.document.mongodb.MongoPropertyDescriptors.MongoPropertyDescriptor; -import org.springframework.data.document.mongodb.query.IndexSpecification; +import org.springframework.data.document.mongodb.query.IndexDefinition; import org.springframework.data.document.mongodb.query.Query; import org.springframework.data.document.mongodb.query.Update; import org.springframework.jca.cci.core.ConnectionCallback; @@ -280,13 +280,13 @@ public class MongoTemplate implements InitializingBean, MongoOperations { * @see org.springframework.data.document.mongodb.MongoOperations#execute(org.springframework.data.document.mongodb.CollectionCallback) */ public T execute(CollectionCallback callback) { - return execute(callback, defaultCollectionName); + return execute(getDefaultCollectionName(), callback); } /* (non-Javadoc) * @see org.springframework.data.document.mongodb.MongoOperations#execute(org.springframework.data.document.mongodb.CollectionCallback, java.lang.String) */ - public T execute(CollectionCallback callback, String collectionName) { + public T execute(String collectionName, CollectionCallback callback) { Assert.notNull(callback); @@ -416,33 +416,33 @@ public class MongoTemplate implements InitializingBean, MongoOperations { */ public void dropCollection(String collectionName) { - execute(new CollectionCallback() { + execute(collectionName, new CollectionCallback() { public Void doInCollection(DBCollection collection) throws MongoException, DataAccessException { collection.drop(); return null; } - }, collectionName); + }); } // Indexing methods - public void ensureIndex(IndexSpecification indexSpecification) { - ensureIndex(getDefaultCollectionName(), indexSpecification); + public void ensureIndex(IndexDefinition indexDefinition) { + ensureIndex(getDefaultCollectionName(), indexDefinition); } - public void ensureIndex(String collectionName, final IndexSpecification indexSpecification) { - execute(new CollectionCallback() { + public void ensureIndex(String collectionName, final IndexDefinition indexDefinition) { + execute(collectionName, new CollectionCallback() { public Object doInCollection(DBCollection collection) throws MongoException, DataAccessException { - DBObject indexOptions = indexSpecification.getIndexOptions(); + DBObject indexOptions = indexDefinition.getIndexOptions(); if (indexOptions != null) { - collection.ensureIndex(indexSpecification.getIndexObject(), indexOptions); + collection.ensureIndex(indexDefinition.getIndexObject(), indexOptions); } else { - collection.ensureIndex(indexSpecification.getIndexObject()); + collection.ensureIndex(indexDefinition.getIndexObject()); } return null; } - }, collectionName); + }); } // Find methods that take a Query to express the query and that return a single object. @@ -623,7 +623,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { return null; } - return execute(new CollectionCallback() { + return execute(collectionName, new CollectionCallback() { public Object doInCollection(DBCollection collection) throws MongoException, DataAccessException { if (writeConcern == null) { collection.insert(dbDoc); @@ -633,7 +633,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { } return dbDoc.get(ID); } - }, collectionName); + }); } protected List insertDBObjectList(String collectionName, final List dbDocList) { @@ -642,7 +642,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { return Collections.emptyList(); } - execute(new CollectionCallback() { + execute(collectionName, new CollectionCallback() { public Void doInCollection(DBCollection collection) throws MongoException, DataAccessException { if (writeConcern == null) { collection.insert(dbDocList); @@ -652,7 +652,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { } return null; } - }, collectionName); + }); List ids = new ArrayList(); for (DBObject dbo : dbDocList) { @@ -674,7 +674,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { return null; } - return execute(new CollectionCallback() { + return execute(collectionName, new CollectionCallback() { public ObjectId doInCollection(DBCollection collection) throws MongoException, DataAccessException { if (writeConcern == null) { collection.save(dbDoc); @@ -684,7 +684,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { } return (ObjectId) dbDoc.get(ID); } - }, collectionName); + }); } /* (non-Javadoc) @@ -698,7 +698,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { * @see org.springframework.data.document.mongodb.MongoOperations#updateFirst(java.lang.String, com.mongodb.DBObject, com.mongodb.DBObject) */ public WriteResult updateFirst(String collectionName, final Query query, final Update update) { - return execute(new CollectionCallback() { + return execute(collectionName, new CollectionCallback() { public WriteResult doInCollection(DBCollection collection) throws MongoException, DataAccessException { WriteResult wr; if (writeConcern == null) { @@ -710,7 +710,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { handleAnyWriteResultErrors(wr, query.getQueryObject(), "update with '" +update.getUpdateObject() + "'"); return wr; } - }, collectionName); + }); } /* (non-Javadoc) @@ -724,7 +724,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { * @see org.springframework.data.document.mongodb.MongoOperations#updateMulti(java.lang.String, com.mongodb.DBObject, com.mongodb.DBObject) */ public WriteResult updateMulti(String collectionName, final Query query, final Update update) { - return execute(new CollectionCallback() { + return execute(collectionName, new CollectionCallback() { public WriteResult doInCollection(DBCollection collection) throws MongoException, DataAccessException { WriteResult wr = null; if (writeConcern == null) { @@ -736,7 +736,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { handleAnyWriteResultErrors(wr, query.getQueryObject(), "update with '" +update.getUpdateObject() + "'"); return wr; } - }, collectionName); + }); } /* (non-Javadoc) @@ -750,7 +750,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { * @see org.springframework.data.document.mongodb.MongoOperations#remove(java.lang.String, com.mongodb.DBObject) */ public void remove(String collectionName, final Query query) { - execute(new CollectionCallback() { + execute(collectionName, new CollectionCallback() { public Void doInCollection(DBCollection collection) throws MongoException, DataAccessException { WriteResult wr = null; if (writeConcern == null) { @@ -762,7 +762,7 @@ public class MongoTemplate implements InitializingBean, MongoOperations { handleAnyWriteResultErrors(wr, query.getQueryObject(), "remove"); return null; } - }, collectionName); + }); } diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/GeospatialIndex.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/GeospatialIndex.java index 4b67817b6..0d5982628 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/GeospatialIndex.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/GeospatialIndex.java @@ -19,7 +19,7 @@ import com.mongodb.BasicDBObject; import com.mongodb.DBObject; -public class GeospatialIndex implements IndexSpecification { +public class GeospatialIndex implements IndexDefinition { private String keyField; diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/Index.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/Index.java index 8d94c02ed..f1693a610 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/Index.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/Index.java @@ -22,7 +22,7 @@ import com.mongodb.BasicDBObject; import com.mongodb.DBObject; -public class Index implements IndexSpecification { +public class Index implements IndexDefinition { public enum Duplicates { RETAIN, diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexSpecification.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexDefinition.java similarity index 79% rename from spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexSpecification.java rename to spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexDefinition.java index 197b9f978..c23259ab0 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexSpecification.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/query/IndexDefinition.java @@ -2,7 +2,7 @@ package org.springframework.data.document.mongodb.query; import com.mongodb.DBObject; -public interface IndexSpecification { +public interface IndexDefinition { DBObject getIndexObject(); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQuery.java b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQuery.java index 3b210442c..310a6ff0e 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQuery.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/document/mongodb/repository/MongoQuery.java @@ -176,13 +176,13 @@ public class MongoQuery implements RepositoryQuery { private DBCursor getCollectionCursor(String collectionName, final DBObject query) { - return template.execute(new CollectionCallback() { + return template.execute(collectionName, new CollectionCallback() { public DBCursor doInCollection(DBCollection collection) { return collection.find(query); } - }, collectionName); + }); } } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoOperationsUnitTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoOperationsUnitTests.java index 1ef25b649..825591680 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoOperationsUnitTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/document/mongodb/MongoOperationsUnitTests.java @@ -87,7 +87,7 @@ public abstract class MongoOperationsUnitTests { @Test(expected = IllegalArgumentException.class) @SuppressWarnings({"unchecked", "rawtypes"}) public void rejectsNullForCollectionCallback2() { - getOperations().execute((CollectionCallback) null, "collection"); + getOperations().execute("collection", (CollectionCallback) null); } @Test(expected = IllegalArgumentException.class) @@ -161,7 +161,7 @@ public abstract class MongoOperationsUnitTests { new Execution() { @Override public void doWith(MongoOperations operations) { - operations.execute(collectionCallback, "collection"); + operations.execute("collection", collectionCallback); } }.assertDataAccessException(); }