Refactor iterator of Map with Java8's Map.forEach

See gh-1459
This commit is contained in:
diguage
2017-06-13 17:53:13 +08:00
committed by Stephane Nicoll
parent 7018804e84
commit 1ef5f61ab2
18 changed files with 72 additions and 130 deletions

View File

@@ -149,11 +149,11 @@ public class MessageHeaders implements Map<String, Object>, Serializable {
*/
private MessageHeaders(MessageHeaders original, Set<String> keysToIgnore) {
this.headers = new HashMap<>(original.headers.size() - keysToIgnore.size());
for (Map.Entry<String, Object> entry : original.headers.entrySet()) {
if (!keysToIgnore.contains(entry.getKey())) {
this.headers.put(entry.getKey(), entry.getValue());
original.headers.forEach((key, value) -> {
if (!keysToIgnore.contains(key)) {
this.headers.put(key, value);
}
}
});
}
@@ -276,11 +276,11 @@ public class MessageHeaders implements Map<String, Object>, Serializable {
private void writeObject(ObjectOutputStream out) throws IOException {
Set<String> keysToIgnore = new HashSet<>();
for (Map.Entry<String, Object> entry : this.headers.entrySet()) {
if (!(entry.getValue() instanceof Serializable)) {
keysToIgnore.add(entry.getKey());
this.headers.forEach((key, value) -> {
if (!(value instanceof Serializable)) {
keysToIgnore.add(key);
}
}
});
if (keysToIgnore.isEmpty()) {
// All entries are serializable -> serialize the regular MessageHeaders instance

View File

@@ -288,9 +288,7 @@ public abstract class AbstractMethodMessageHandler<T>
if (logger.isDebugEnabled()) {
logger.debug(methods.size() + " message handler methods found on " + userType + ": " + methods);
}
for (Map.Entry<Method, T> entry : methods.entrySet()) {
registerHandlerMethod(handler, entry.getKey(), entry.getValue());
}
methods.forEach((key, value) -> registerHandlerMethod(handler, key, value));
}
}

View File

@@ -113,10 +113,7 @@ public class StompHeaders implements MultiValueMap<String, String>, Serializable
Assert.notNull(headers, "'headers' must not be null");
if (readOnly) {
Map<String, List<String>> map = new LinkedMultiValueMap<>(headers.size());
for (Entry<String, List<String>> entry : headers.entrySet()) {
List<String> values = Collections.unmodifiableList(entry.getValue());
map.put(entry.getKey(), values);
}
headers.forEach((key, value) -> map.put(key, Collections.unmodifiableList(value)));
this.headers = Collections.unmodifiableMap(map);
}
else {
@@ -424,9 +421,7 @@ public class StompHeaders implements MultiValueMap<String, String>, Serializable
@Override
public void addAll(MultiValueMap<String, String> values) {
for (Entry<String, List<String>> entry : values.entrySet()) {
addAll(entry.getKey(), entry.getValue());
}
values.forEach(this::addAll);
}
/**
@@ -446,17 +441,13 @@ public class StompHeaders implements MultiValueMap<String, String>, Serializable
@Override
public void setAll(Map<String, String> values) {
for (Entry<String, String> entry : values.entrySet()) {
set(entry.getKey(), entry.getValue());
}
values.forEach(this::set);
}
@Override
public Map<String, String> toSingleValueMap() {
LinkedHashMap<String, String> singleValueMap = new LinkedHashMap<>(this.headers.size());
for (Entry<String, List<String>> entry : headers.entrySet()) {
singleValueMap.put(entry.getKey(), entry.getValue().get(0));
}
headers.forEach((key, value) -> singleValueMap.put(key, value.get(0)));
return singleValueMap;
}

View File

@@ -387,11 +387,11 @@ public class MessageHeaderAccessor {
*/
public void copyHeaders(@Nullable Map<String, ?> headersToCopy) {
if (headersToCopy != null) {
for (Map.Entry<String, ?> entry : headersToCopy.entrySet()) {
if (!isReadOnly(entry.getKey())) {
setHeader(entry.getKey(), entry.getValue());
headersToCopy.forEach((key, value) -> {
if (!isReadOnly(key)) {
setHeader(key, value);
}
}
});
}
}
@@ -401,11 +401,11 @@ public class MessageHeaderAccessor {
*/
public void copyHeadersIfAbsent(@Nullable Map<String, ?> headersToCopy) {
if (headersToCopy != null) {
for (Map.Entry<String, ?> entry : headersToCopy.entrySet()) {
if (!isReadOnly(entry.getKey())) {
setHeaderIfAbsent(entry.getKey(), entry.getValue());
headersToCopy.forEach((key, value) -> {
if (!isReadOnly(key)) {
setHeaderIfAbsent(key, value);
}
}
});
}
}

View File

@@ -197,11 +197,7 @@ public class NativeMessageHeaderAccessor extends MessageHeaderAccessor {
if (headers == null) {
return;
}
for (Map.Entry<String, List<String>> headerEntry : headers.entrySet()) {
for (String value : headerEntry.getValue()) {
addNativeHeader(headerEntry.getKey(), value);
}
}
headers.forEach((key, values) -> values.forEach(value -> addNativeHeader(key, value)));
}
@Nullable