31 package com.google.protobuf;
33 import java.util.Iterator;
34 import java.util.Map.Entry;
91 static class LazyEntry<
K>
implements Entry<K, Object> {
92 private Entry<K, LazyField> entry;
94 private LazyEntry(Entry<K, LazyField> entry) {
100 return entry.getKey();
109 return field.getValue();
113 return entry.getValue();
118 if (!(
value instanceof MessageLite)) {
119 throw new IllegalArgumentException(
120 "LazyField now only used for MessageSet, "
121 +
"and the value of MessageSet must be an instance of MessageLite");
123 return entry.getValue().setValue((MessageLite)
value);
127 static class LazyIterator<
K>
implements Iterator<Entry<K, Object>> {
128 private Iterator<Entry<K, Object>> iterator;
130 public LazyIterator(Iterator<Entry<K, Object>> iterator) {
131 this.iterator = iterator;
135 public boolean hasNext() {
136 return iterator.hasNext();
140 @SuppressWarnings(
"unchecked")
141 public Entry<
K, Object>
next() {
142 Entry<K, ?> entry = iterator.next();
143 if (entry.getValue() instanceof
LazyField) {
144 return new LazyEntry<K>((Entry<K, LazyField>) entry);
146 return (Entry<K, Object>) entry;
150 public void remove() {