Remove all lambdas from MapFieldBuilder

PiperOrigin-RevId: 550030591
pull/13373/head
Protobuf Team Bot 2 years ago committed by Copybara-Service
parent 4cc258a6a1
commit 6630e9fa56
  1. 58
      java/core/src/main/java/com/google/protobuf/MapFieldBuilder.java

@ -34,7 +34,6 @@ import java.util.ArrayList;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.function.BiConsumer;
/** /**
* Internal representation of map fields in generated builders. * Internal representation of map fields in generated builders.
@ -79,12 +78,12 @@ public class MapFieldBuilder<
} }
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
private void forEachListEntry(BiConsumer<KeyT, MessageT> f) { private List<MapEntry<KeyT, MessageT>> getMapEntryList() {
messageList.forEach( ArrayList<MapEntry<KeyT, MessageT>> list = new ArrayList<>(messageList.size());
entry -> { for (Message entry : messageList) {
MapEntry<KeyT, MessageT> typedEntry = (MapEntry<KeyT, MessageT>) entry; list.add((MapEntry<KeyT, MessageT>) entry);
f.accept(typedEntry.getKey(), typedEntry.getValue()); }
}); return list;
} }
public Map<KeyT, MessageOrBuilderT> ensureBuilderMap() { public Map<KeyT, MessageOrBuilderT> ensureBuilderMap() {
@ -93,12 +92,16 @@ public class MapFieldBuilder<
} }
if (messageMap != null) { if (messageMap != null) {
builderMap = new LinkedHashMap<>(messageMap.size()); builderMap = new LinkedHashMap<>(messageMap.size());
messageMap.forEach((key, value) -> builderMap.put(key, value)); for (Map.Entry<KeyT, MessageT> entry : messageMap.entrySet()) {
builderMap.put(entry.getKey(), entry.getValue());
}
messageMap = null; messageMap = null;
return builderMap; return builderMap;
} }
builderMap = new LinkedHashMap<>(messageList.size()); builderMap = new LinkedHashMap<>(messageList.size());
forEachListEntry((key, value) -> builderMap.put(key, value)); for (MapEntry<KeyT, MessageT> entry : getMapEntryList()) {
builderMap.put(entry.getKey(), entry.getValue());
}
messageList = null; messageList = null;
return builderMap; return builderMap;
} }
@ -109,21 +112,24 @@ public class MapFieldBuilder<
} }
if (builderMap != null) { if (builderMap != null) {
messageList = new ArrayList<>(builderMap.size()); messageList = new ArrayList<>(builderMap.size());
builderMap.forEach( for (Map.Entry<KeyT, MessageOrBuilderT> entry : builderMap.entrySet()) {
(key, value) -> messageList.add(
messageList.add( converter.defaultEntry().toBuilder()
converter.defaultEntry().toBuilder() .setKey(entry.getKey())
.setKey(key) .setValue(converter.build(entry.getValue()))
.setValue(converter.build(value)) .build());
.build())); }
builderMap = null; builderMap = null;
return messageList; return messageList;
} }
messageList = new ArrayList<>(messageMap.size()); messageList = new ArrayList<>(messageMap.size());
messageMap.forEach( for (Map.Entry<KeyT, MessageT> entry : messageMap.entrySet()) {
(key, value) -> messageList.add(
messageList.add( converter.defaultEntry().toBuilder()
converter.defaultEntry().toBuilder().setKey(key).setValue(value).build())); .setKey(entry.getKey())
.setValue(entry.getValue())
.build());
}
messageMap = null; messageMap = null;
return messageList; return messageList;
} }
@ -145,11 +151,15 @@ public class MapFieldBuilder<
} }
if (builderMap != null) { if (builderMap != null) {
Map<KeyT, MessageT> toReturn = new LinkedHashMap<>(builderMap.size()); Map<KeyT, MessageT> toReturn = new LinkedHashMap<>(builderMap.size());
builderMap.forEach((key, value) -> toReturn.put(key, converter.build(value))); for (Map.Entry<KeyT, MessageOrBuilderT> entry : builderMap.entrySet()) {
toReturn.put(entry.getKey(), converter.build(entry.getValue()));
}
return toReturn; return toReturn;
} }
Map<KeyT, MessageT> toReturn = new LinkedHashMap<>(messageList.size()); Map<KeyT, MessageT> toReturn = new LinkedHashMap<>(messageList.size());
forEachListEntry((key, value) -> toReturn.put(key, value)); for (MapEntry<KeyT, MessageT> entry : getMapEntryList()) {
toReturn.put(entry.getKey(), entry.getValue());
}
return toReturn; return toReturn;
} }
@ -194,7 +204,9 @@ public class MapFieldBuilder<
public MapField<KeyT, MessageT> build(MapEntry<KeyT, MessageT> defaultEntry) { public MapField<KeyT, MessageT> build(MapEntry<KeyT, MessageT> defaultEntry) {
MapField<KeyT, MessageT> mapField = MapField.newMapField(defaultEntry); MapField<KeyT, MessageT> mapField = MapField.newMapField(defaultEntry);
Map<KeyT, MessageT> map = mapField.getMutableMap(); Map<KeyT, MessageT> map = mapField.getMutableMap();
ensureBuilderMap().forEach((key, value) -> map.put(key, converter.build(value))); for (Map.Entry<KeyT, MessageOrBuilderT> entry : ensureBuilderMap().entrySet()) {
map.put(entry.getKey(), converter.build(entry.getValue()));
}
mapField.makeImmutable(); mapField.makeImmutable();
return mapField; return mapField;
} }

Loading…
Cancel
Save