/** * Gets an immutable version of a {@link MapIterator}. The returned object * will always throw an {@link UnsupportedOperationException} for * the {@link Iterator#remove}, {@link MapIterator#setValue(Object)} methods. * * @param <K> the key type * @param <V> the value type * @param mapIterator the iterator to make immutable * @return an immutable version of the iterator */ public static <K, V> MapIterator<K, V> unmodifiableMapIterator(final MapIterator<K, V> mapIterator) { return UnmodifiableMapIterator.unmodifiableMapIterator(mapIterator); }
@Override public MapIterator<K, V> mapIterator() { if (map instanceof IterableMap) { final MapIterator<K, V> it = ((IterableMap<K, V>) map).mapIterator(); return UnmodifiableMapIterator.unmodifiableMapIterator(it); } final MapIterator<K, V> it = new EntrySetMapIterator<>(map); return UnmodifiableMapIterator.unmodifiableMapIterator(it); }
@Override public MapIterator<K, V> mapIterator() { final MapIterator<K, V> it = decorated().mapIterator(); return UnmodifiableMapIterator.unmodifiableMapIterator(it); }
@Override public MapIterator<K, V> mapIterator() { return UnmodifiableMapIterator.unmodifiableMapIterator(decorated().mapIterator()); }
@Override public MapIterator<K, V> mapIterator() { MapIterator<K, V> it; if (get instanceof IterableGet) { it = ((IterableGet<K, V>) get).mapIterator(); } else { it = new EntrySetToMapIteratorAdapter<>(get.entrySet()); } return UnmodifiableMapIterator.unmodifiableMapIterator(it); } }