From f28d47b01b2d89bc9338481387fd7177b9d66ba4 Mon Sep 17 00:00:00 2001 From: Christoph Strobl Date: Thu, 21 Sep 2017 09:44:48 +0200 Subject: [PATCH] DATAMONGO-1777 - Polishing. --- .../core/query/SerializationUtils.java | 27 +++++-------- .../data/mongodb/core/query/Update.java | 39 ++++++++++++------- .../data/mongodb/core/query/UpdateTests.java | 18 +++------ 3 files changed, 40 insertions(+), 44 deletions(-) diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/SerializationUtils.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/SerializationUtils.java index 02f221034..d5c93cb3f 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/SerializationUtils.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/SerializationUtils.java @@ -17,10 +17,9 @@ package org.springframework.data.mongodb.core.query; import java.util.Collection; import java.util.Collections; -import java.util.HashMap; import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.Map; -import java.util.Map.Entry; import org.bson.Document; import org.springframework.core.convert.converter.Converter; @@ -70,7 +69,7 @@ public abstract class SerializationUtils { return Collections.emptyMap(); } - Map result = new HashMap(); + Map result = new LinkedHashMap<>(); toFlatMap("", source, result); return result; } @@ -80,12 +79,12 @@ public abstract class SerializationUtils { if (source instanceof Document) { Document document = (Document) source; - Iterator> iter = document.entrySet().iterator(); - String pathPrefix = currentPath.isEmpty() ? "" : currentPath + "."; + Iterator> it = document.entrySet().iterator(); + String pathPrefix = currentPath.isEmpty() ? "" : currentPath + '.'; - while (iter.hasNext()) { + while (it.hasNext()) { - Map.Entry entry = iter.next(); + Map.Entry entry = it.next(); if (entry.getKey().startsWith("$")) { if (map.containsKey(currentPath)) { @@ -133,19 +132,12 @@ public abstract class SerializationUtils { } private static String toString(Map source) { - return iterableToDelimitedString(source.entrySet(), "{ ", " }", new Converter, Object>() { - public Object convert(Entry source) { - return String.format("\"%s\" : %s", source.getKey(), serializeToJsonSafely(source.getValue())); - } - }); + return iterableToDelimitedString(source.entrySet(), "{ ", " }", + entry -> String.format("\"%s\" : %s", entry.getKey(), serializeToJsonSafely(entry.getValue()))); } private static String toString(Collection source) { - return iterableToDelimitedString(source, "[ ", " ]", new Converter() { - public Object convert(Object source) { - return serializeToJsonSafely(source); - } - }); + return iterableToDelimitedString(source, "[ ", " ]", SerializationUtils::serializeToJsonSafely); } /** @@ -166,6 +158,7 @@ public abstract class SerializationUtils { Iterator iterator = source.iterator(); while (iterator.hasNext()) { + builder.append(transformer.convert(iterator.next())); if (iterator.hasNext()) { builder.append(", "); diff --git a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Update.java b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Update.java index a5209035a..600bf3c47 100644 --- a/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Update.java +++ b/spring-data-mongodb/src/main/java/org/springframework/data/mongodb/core/query/Update.java @@ -24,6 +24,7 @@ import java.util.HashSet; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Set; import org.bson.Document; @@ -55,9 +56,9 @@ public class Update { } private boolean isolated = false; - private Set keysToUpdate = new HashSet(); - private Map modifierOps = new LinkedHashMap(); - private Map pushCommandBuilders = new LinkedHashMap(1); + private Set keysToUpdate = new HashSet<>(); + private Map modifierOps = new LinkedHashMap<>(); + private Map pushCommandBuilders = new LinkedHashMap<>(1); /** * Static factory method to create an Update using the provided key @@ -122,7 +123,8 @@ public class Update { * @param key * @param value * @return - * @see MongoDB Update operator: $setOnInsert + * @see MongoDB Update operator: + * $setOnInsert */ public Update setOnInsert(String key, Object value) { addMultiFieldOperation("$setOnInsert", key, value); @@ -193,7 +195,8 @@ public class Update { * @param key * @param values * @return - * @see MongoDB Update operator: $pushAll + * @see MongoDB Update operator: + * $pushAll */ public Update pushAll(String key, Object[] values) { addMultiFieldOperation("$pushAll", key, Arrays.asList(values)); @@ -218,7 +221,8 @@ public class Update { * @param key * @param value * @return - * @see MongoDB Update operator: $addToSet + * @see MongoDB Update operator: + * $addToSet */ public Update addToSet(String key, Object value) { addMultiFieldOperation("$addToSet", key, value); @@ -257,7 +261,8 @@ public class Update { * @param key * @param values * @return - * @see MongoDB Update operator: $pullAll + * @see MongoDB Update operator: + * $pullAll */ public Update pullAll(String key, Object[] values) { addMultiFieldOperation("$pullAll", key, Arrays.asList(values)); @@ -270,7 +275,8 @@ public class Update { * @param oldName * @param newName * @return - * @see MongoDB Update operator: $rename + * @see MongoDB Update operator: + * $rename */ public Update rename(String oldName, String newName) { addMultiFieldOperation("$rename", oldName, newName); @@ -283,7 +289,8 @@ public class Update { * @param key * @return * @since 1.6 - * @see MongoDB Update operator: $currentDate + * @see MongoDB Update operator: + * $currentDate */ public Update currentDate(String key) { @@ -297,7 +304,8 @@ public class Update { * @param key * @return * @since 1.6 - * @see MongoDB Update operator: $currentDate + * @see MongoDB Update operator: + * $currentDate */ public Update currentTimestamp(String key) { @@ -476,7 +484,7 @@ public class Update { } Update that = (Update) obj; - return this.getUpdateObject().equals(that.getUpdateObject()); + return Objects.equals(this.getUpdateObject(), that.getUpdateObject()); } /* @@ -506,7 +514,7 @@ public class Update { private Map modifiers; public Modifiers() { - this.modifiers = new LinkedHashMap(1); + this.modifiers = new LinkedHashMap<>(1); } public Collection getModifiers() { @@ -534,7 +542,8 @@ public class Update { return nullSafeHashCode(modifiers); } - /* (non-Javadoc) + /* + * (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override @@ -550,7 +559,7 @@ public class Update { Modifiers that = (Modifiers) obj; - return this.modifiers.equals(that.modifiers); + return Objects.equals(this.modifiers, that.modifiers); } @Override @@ -958,7 +967,7 @@ public class Update { PushOperatorBuilder that = (PushOperatorBuilder) obj; - if (!getOuterType().equals(that.getOuterType())) { + if (!Objects.equals(getOuterType(), that.getOuterType())) { return false; } diff --git a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java index 2acf8ef9c..b6838cc4c 100644 --- a/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java +++ b/spring-data-mongodb/src/test/java/org/springframework/data/mongodb/core/query/UpdateTests.java @@ -425,8 +425,7 @@ public class UpdateTests { Update update = new Update().max("key", 10); - assertThat(update.getUpdateObject(), - equalTo(new Document("$max", new Document("key", 10)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$max", new Document("key", 10)))); } @Test // DATAMONGO-1404 @@ -434,8 +433,7 @@ public class UpdateTests { Update update = new Update().min("key", 10); - assertThat(update.getUpdateObject(), - equalTo(new Document("$min", new Document("key", 10)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$min", new Document("key", 10)))); } @Test // DATAMONGO-1404 @@ -444,8 +442,7 @@ public class UpdateTests { Update update = new Update().max("key", 10); update.max("key", 99); - assertThat(update.getUpdateObject(), - equalTo(new Document("$max", new Document("key", 99)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$max", new Document("key", 99)))); } @Test // DATAMONGO-1404 @@ -454,8 +451,7 @@ public class UpdateTests { Update update = new Update().min("key", 10); update.min("key", 99); - assertThat(update.getUpdateObject(), - equalTo(new Document("$min", new Document("key", 99)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$min", new Document("key", 99)))); } @Test // DATAMONGO-1404 @@ -464,8 +460,7 @@ public class UpdateTests { Date date = new Date(); Update update = new Update().max("key", date); - assertThat(update.getUpdateObject(), - equalTo(new Document("$max", new Document("key", date)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$max", new Document("key", date)))); } @Test // DATAMONGO-1404 @@ -474,8 +469,7 @@ public class UpdateTests { Date date = new Date(); Update update = new Update().min("key", date); - assertThat(update.getUpdateObject(), - equalTo(new Document("$min", new Document("key", date)))); + assertThat(update.getUpdateObject(), equalTo(new Document("$min", new Document("key", date)))); } @Test // DATAMONGO-1777