31 package com.google.protobuf;
36 class MapFieldSchemaLite
implements MapFieldSchema {
39 public Map<?, ?> forMutableMapData(Object mapField) {
40 return (MapFieldLite<?, ?>) mapField;
44 public Metadata<?, ?> forMapMetadata(Object mapDefaultEntry) {
45 return ((MapEntryLite<?, ?>) mapDefaultEntry).getMetadata();
49 public Map<?, ?> forMapData(Object mapField) {
50 return (MapFieldLite<?, ?>) mapField;
54 public boolean isImmutable(Object mapField) {
55 return !((MapFieldLite<?, ?>) mapField).isMutable();
59 public Object toImmutable(Object mapField) {
60 ((MapFieldLite<?, ?>) mapField).makeImmutable();
65 public Object newMapField(Object unused) {
66 return MapFieldLite.emptyMapField().mutableCopy();
70 public Object mergeFrom(Object destMapField, Object srcMapField) {
71 return mergeFromLite(destMapField, srcMapField);
74 @SuppressWarnings(
"unchecked")
75 private static <
K, V> MapFieldLite<
K, V> mergeFromLite(Object destMapField, Object srcMapField) {
76 MapFieldLite<K, V> mine = (MapFieldLite<K, V>) destMapField;
77 MapFieldLite<K, V> other = (MapFieldLite<K, V>) srcMapField;
78 if (!other.isEmpty()) {
79 if (!mine.isMutable()) {
80 mine = mine.mutableCopy();
82 mine.mergeFrom(other);
88 public int getSerializedSize(
int fieldNumber, Object mapField, Object mapDefaultEntry) {
89 return getSerializedSizeLite(fieldNumber, mapField, mapDefaultEntry);
92 @SuppressWarnings(
"unchecked")
93 private static <
K, V>
int getSerializedSizeLite(
94 int fieldNumber, Object mapField, Object defaultEntry) {
95 MapFieldLite<K, V> mapFieldLite = (MapFieldLite<K, V>) mapField;
96 MapEntryLite<K, V> defaultEntryLite = (MapEntryLite<K, V>) defaultEntry;
98 if (mapFieldLite.isEmpty()) {
102 for (
Map.Entry<
K, V> entry : mapFieldLite.entrySet()) {
103 size += defaultEntryLite.computeMessageSize(fieldNumber, entry.getKey(), entry.getValue());