package org.infinispan.distribution.util; import java.util.Iterator; import java.util.Map.Entry; import java.util.Set; import org.infinispan.distribution.ch.ConsistentHash; /** * Iterator implementation that shows a read only view of the provided iterator by only * allowing values that map to a given segment using the provided consistent hash. * <p> * This iterator is specifically used with the {@link ReadOnlySegmentAwareEntryCollection} so * that it will properly filter out entries by their key instead of by the entry instance * * @author wburns * @since 7.2 */ public class ReadOnlySegmentAwareEntryIterator<K, V> extends ReadOnlySegmentAwareIterator<Entry<K, V>> { public ReadOnlySegmentAwareEntryIterator(Iterator<Entry<K, V>> iter, ConsistentHash ch, Set<Integer> allowedSegments) { super(iter, ch, allowedSegments); } @Override protected boolean valueAllowed(Object obj) { if (obj instanceof Entry) { return super.valueAllowed(((Entry<?, ?>)obj).getKey()); } return false; } }