public FilteredIterator(Iterator<? extends T> iterator, IPredicate<T> predicate) { this.iterator = iterator; this.predicate = predicate; findNext(); }
private synchronized void notifyListener() { if (listener != null) { listener.listChanged(this); } }
public static <E> void iterateWithIndex(Collection<E> collection, ElementWithIndexConsumer<E> consumer) { int i = 0; for (E element : collection) { consumer.accept(i++, element); } }
/** * Constructor * * @param doubleclickListener * Gets called when an entry is double clicked, can be <code>null</code> */ public OpenPanel(final ChangingList<? extends MapLoader> maps, IMapSelectedListener mapSelectedListener) { this(maps.getItems(), mapSelectedListener); maps.setListener(changedLister -> { setMapLoaders(changedLister.getItems()); }); }
@Test public void testUseFilterTwoTimes() { IteratorFilter<Integer> filter = new IteratorFilter<>(list, object -> true); assertEqualality(list, filter); assertEqualality(list, filter); }
private PlayerSetting[] determinePlayerSettings(boolean[] availablePlayers) { PlayerSetting[] playerSettings = new PlayerSetting[availablePlayers.length]; byte i = 0; for (; i < playersList.getItems().size(); i++) { playerSettings[i] = new PlayerSetting(i); } EPlayerType aiType = iAmTheHost ? EPlayerType.AI_VERY_HARD : EPlayerType.HUMAN; for (; i < availablePlayers.length; i++) { playerSettings[i] = new PlayerSetting(aiType, ECivilisation.ROMAN, i); } return playerSettings; }
private void findNext() { while (iterator.hasNext()) { T curr = iterator.next(); if (predicate.evaluate(curr)) { this.next = curr; break; } } }
public void setList(List<T> items) { if (items == null) { throw new NullPointerException(); } this.items = items; notifyListener(); }
@Override public Iterator<T> iterator() { return new FilteredIterator<>(iterable.iterator(), predicate); }
void updatePlayersList(PlayerInfoPacket[] playerInfoPackets) { List<IMultiplayerPlayer> players = new LinkedList<>(); for (PlayerInfoPacket playerInfoPacket : playerInfoPackets) { players.add(new MultiplayerPlayer(playerInfoPacket)); } playersList.setList(players); }
private void assertEqualality(LinkedList<Integer> expectedList, IteratorFilter<Integer> iteratorFilter) { Iterator<Integer> expectedIterator = expectedList.iterator(); Iterator<Integer> filterIterator = iteratorFilter.iterator(); while (expectedIterator.hasNext() && filterIterator.hasNext()) { Integer expected = expectedIterator.next(); Integer filtered = filterIterator.next(); assertEquals(expected, filtered); } assertEquals(expectedIterator.hasNext(), filterIterator.hasNext()); } }
@Test public void testFilterUneven() { LinkedList<Integer> expected = new LinkedList<>(); for (Integer curr : list) { if (curr % 2 != 0) expected.add(curr); } assertEqualality(expected, new IteratorFilter<>(list, object -> object % 2 != 0)); }
private boolean areAllPlayersReady() { return !stream(playersList.getItems()) .filter(player -> !player.isReady()) .findAny() .isPresent(); } };
public void clear() { if (items != null) { items.clear(); notifyListener(); } }
@Override public boolean hasNext() { if (next == null) { findNext(); } return next != null; }
@Override public Iterator<ShortPoint2D> iterator() { return new IteratorFilter.FilteredIterator<>(base.iterator(), this::inMap); }
@Test public void testFilterEven() { LinkedList<Integer> expected = new LinkedList<>(); for (Integer curr : list) { if (curr % 2 == 0) expected.add(curr); } assertEqualality(expected, new IteratorFilter<>(list, object -> object % 2 == 0)); }
public void add(T item) { items.add(item); notifyListener(); }
public void remove(T item) { items.remove(item); notifyListener(); }