Java 11 migrate remaining (g,h,i) (#1116)

* Moves game-loop to Java 11

* Moves guarded-suspension to Java 11

* Moves half-sync-half-async to Java 11

* Moves hexagonal to Java 11

* Moves intercepting-filter to Java 11

* Moves interpreter to Java 11

* Moves iterator to Java 11
This commit is contained in:
Anurag Agarwal
2019-12-20 10:41:30 +05:30
committed by Ilkka Seppälä
parent 7d0a5c0edb
commit f835d3d516
68 changed files with 454 additions and 533 deletions

View File

@ -30,7 +30,6 @@ import static com.iluwatar.iterator.list.ItemType.WEAPON;
import com.iluwatar.iterator.bst.BstIterator;
import com.iluwatar.iterator.bst.TreeNode;
import com.iluwatar.iterator.list.Item;
import com.iluwatar.iterator.list.ItemType;
import com.iluwatar.iterator.list.TreasureChest;
import org.slf4j.Logger;
@ -53,7 +52,7 @@ public class App {
private static void demonstrateTreasureChestIteratorForType(ItemType itemType) {
LOGGER.info("------------------------");
LOGGER.info("Item Iterator for ItemType " + itemType + ": ");
Iterator<Item> itemIterator = TREASURE_CHEST.iterator(itemType);
var itemIterator = TREASURE_CHEST.iterator(itemType);
while (itemIterator.hasNext()) {
LOGGER.info(itemIterator.next().toString());
}
@ -62,15 +61,15 @@ public class App {
private static void demonstrateBstIterator() {
LOGGER.info("------------------------");
LOGGER.info("BST Iterator: ");
TreeNode<Integer> root = buildIntegerBst();
BstIterator bstIterator = new BstIterator<>(root);
var root = buildIntegerBst();
var bstIterator = new BstIterator<Integer>(root);
while (bstIterator.hasNext()) {
LOGGER.info("Next node: " + bstIterator.next().getVal());
}
}
private static TreeNode<Integer> buildIntegerBst() {
TreeNode<Integer> root = new TreeNode<>(8);
var root = new TreeNode<>(8);
root.insert(3);
root.insert(10);

View File

@ -78,7 +78,7 @@ public class BstIterator<T extends Comparable<T>> implements Iterator<TreeNode<T
if (pathStack.isEmpty()) {
throw new NoSuchElementException();
}
TreeNode<T> next = pathStack.pop();
var next = pathStack.pop();
pushPathToNextSmallest(next.getRight());
return next;
}

View File

@ -63,7 +63,7 @@ public TreeNode next() throws IllegalStateException {
if (pathStack.isEmpty()) {
throw new IllegalStateException();
}
TreeNode next = pathStack.pop();
var next = pathStack.pop();
// follow right child to next smallest node
pushPathToNextSmallest(next.getRight());
return next;

View File

@ -72,7 +72,7 @@ public class TreeNode<T extends Comparable<T>> {
* @param valToInsert The value to insert as a new TreeNode
*/
public void insert(T valToInsert) {
TreeNode<T> parent = getParentNodeOfValueToBeInserted(valToInsert);
var parent = getParentNodeOfValueToBeInserted(valToInsert);
parent.insertNewChild(valToInsert);
}
@ -84,7 +84,7 @@ public class TreeNode<T extends Comparable<T>> {
*/
private TreeNode<T> getParentNodeOfValueToBeInserted(T valToInsert) {
TreeNode<T> parent = null;
TreeNode<T> curr = this;
var curr = this;
while (curr != null) {
parent = curr;

View File

@ -24,7 +24,6 @@
package com.iluwatar.iterator.list;
import com.iluwatar.iterator.Iterator;
import java.util.List;
/**
* TreasureChestItemIterator.
@ -59,10 +58,9 @@ public class TreasureChestItemIterator implements Iterator<Item> {
}
private int findNextIdx() {
List<Item> items = chest.getItems();
boolean found = false;
int tempIdx = idx;
while (!found) {
var items = chest.getItems();
var tempIdx = idx;
while (true) {
tempIdx++;
if (tempIdx >= items.size()) {
tempIdx = -1;

View File

@ -32,7 +32,6 @@ class AppTest {
@Test
void testApp() {
String[] args = {};
App.main(args);
App.main(new String[]{});
}
}

View File

@ -28,13 +28,12 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.NoSuchElementException;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.TestInstance;
import org.junit.jupiter.api.TestInstance.Lifecycle;
import java.util.NoSuchElementException;
@TestInstance(Lifecycle.PER_CLASS)
class BstIteratorTest {
@ -55,14 +54,14 @@ class BstIteratorTest {
@Test
void nextForEmptyTree() {
BstIterator<Integer> iter = new BstIterator<>(emptyRoot);
var iter = new BstIterator<>(emptyRoot);
assertThrows(NoSuchElementException.class, iter::next,
"next() should throw an IllegalStateException if hasNext() is false.");
}
@Test
void nextOverEntirePopulatedTree() {
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
var iter = new BstIterator<>(nonEmptyRoot);
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
assertEquals(Integer.valueOf(3), iter.next().getVal(), "Second Node is 3.");
assertEquals(Integer.valueOf(4), iter.next().getVal(), "Third Node is 4.");
@ -73,19 +72,19 @@ class BstIteratorTest {
@Test
void hasNextForEmptyTree() {
BstIterator<Integer> iter = new BstIterator<>(emptyRoot);
var iter = new BstIterator<>(emptyRoot);
assertFalse(iter.hasNext(), "hasNext() should return false for empty tree.");
}
@Test
void hasNextForPopulatedTree() {
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
var iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "hasNext() should return true for populated tree.");
}
@Test
void nextAndHasNextOverEntirePopulatedTree() {
BstIterator<Integer> iter = new BstIterator<>(nonEmptyRoot);
var iter = new BstIterator<>(nonEmptyRoot);
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");
assertEquals(Integer.valueOf(1), iter.next().getVal(), "First Node is 1.");
assertTrue(iter.hasNext(), "Iterator hasNext() should be true.");

View File

@ -27,7 +27,6 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.fail;
import com.iluwatar.iterator.Iterator;
import java.util.List;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.MethodSource;
@ -46,16 +45,16 @@ public class TreasureChestTest {
*/
public static List<Object[]> dataProvider() {
return List.of(
new Object[]{new Item(ItemType.POTION, "Potion of courage")},
new Object[]{new Item(ItemType.RING, "Ring of shadows")},
new Object[]{new Item(ItemType.POTION, "Potion of wisdom")},
new Object[]{new Item(ItemType.POTION, "Potion of blood")},
new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")},
new Object[]{new Item(ItemType.POTION, "Potion of rust")},
new Object[]{new Item(ItemType.POTION, "Potion of healing")},
new Object[]{new Item(ItemType.RING, "Ring of armor")},
new Object[]{new Item(ItemType.WEAPON, "Steel halberd")},
new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")}
new Object[]{new Item(ItemType.POTION, "Potion of courage")},
new Object[]{new Item(ItemType.RING, "Ring of shadows")},
new Object[]{new Item(ItemType.POTION, "Potion of wisdom")},
new Object[]{new Item(ItemType.POTION, "Potion of blood")},
new Object[]{new Item(ItemType.WEAPON, "Sword of silver +1")},
new Object[]{new Item(ItemType.POTION, "Potion of rust")},
new Object[]{new Item(ItemType.POTION, "Potion of healing")},
new Object[]{new Item(ItemType.RING, "Ring of armor")},
new Object[]{new Item(ItemType.WEAPON, "Steel halberd")},
new Object[]{new Item(ItemType.WEAPON, "Dagger of poison")}
);
}
@ -66,16 +65,16 @@ public class TreasureChestTest {
@ParameterizedTest
@MethodSource("dataProvider")
public void testIterator(Item expectedItem) {
final TreasureChest chest = new TreasureChest();
final Iterator<Item> iterator = chest.iterator(expectedItem.getType());
final var chest = new TreasureChest();
final var iterator = chest.iterator(expectedItem.getType());
assertNotNull(iterator);
while (iterator.hasNext()) {
final Item item = iterator.next();
final var item = iterator.next();
assertNotNull(item);
assertEquals(expectedItem.getType(), item.getType());
final String name = item.toString();
final var name = item.toString();
assertNotNull(name);
if (expectedItem.toString().equals(name)) {
return;
@ -93,17 +92,17 @@ public class TreasureChestTest {
@ParameterizedTest
@MethodSource("dataProvider")
public void testGetItems(Item expectedItem) throws Exception {
final TreasureChest chest = new TreasureChest();
final List<Item> items = chest.getItems();
final var chest = new TreasureChest();
final var items = chest.getItems();
assertNotNull(items);
for (final Item item : items) {
for (final var item : items) {
assertNotNull(item);
assertNotNull(item.getType());
assertNotNull(item.toString());
final boolean sameType = expectedItem.getType() == item.getType();
final boolean sameName = expectedItem.toString().equals(item.toString());
final var sameType = expectedItem.getType() == item.getType();
final var sameName = expectedItem.toString().equals(item.toString());
if (sameType && sameName) {
return;
}