Move addCallback method from integration test Utils to main Utils

This commit is contained in:
Jonas Herzig
2017-05-21 19:30:37 +02:00
parent 18c5bcd469
commit 1a55983986
5 changed files with 21 additions and 25 deletions

View File

@@ -30,7 +30,7 @@ import java.util.NoSuchElementException;
import java.util.concurrent.TimeoutException; import java.util.concurrent.TimeoutException;
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER; import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
import static com.replaymod.core.Utils.addCallback; import static com.replaymod.core.utils.Utils.addCallback;
public abstract class AbstractTask implements Task { public abstract class AbstractTask implements Task {
public static Task create(Consumer<AbstractTask> init) { public static Task create(Consumer<AbstractTask> init) {

View File

@@ -4,6 +4,7 @@ import com.google.common.util.concurrent.ListenableFuture;
import com.google.common.util.concurrent.SettableFuture; import com.google.common.util.concurrent.SettableFuture;
import static com.replaymod.core.ReplayModIntegrationTest.LOGGER; import static com.replaymod.core.ReplayModIntegrationTest.LOGGER;
import static com.replaymod.core.utils.Utils.addCallback;
public class CompositeTask implements Task { public class CompositeTask implements Task {
private SettableFuture<Void> future; private SettableFuture<Void> future;
@@ -28,7 +29,7 @@ public class CompositeTask implements Task {
Task task = children[childIndex]; Task task = children[childIndex];
LOGGER.info("Running task {}", task); LOGGER.info("Running task {}", task);
ListenableFuture<Void> childFuture = task.execute(); ListenableFuture<Void> childFuture = task.execute();
Utils.addCallback(childFuture, done -> executeChild(childIndex + 1), err -> future.setException(err)); addCallback(childFuture, done -> executeChild(childIndex + 1), err -> future.setException(err));
} catch (Throwable t) { } catch (Throwable t) {
future.setException(t); future.setException(t);
} }

View File

@@ -18,7 +18,7 @@ import org.apache.logging.log4j.Logger;
import static com.replaymod.core.AbstractTask.mc; import static com.replaymod.core.AbstractTask.mc;
import static com.replaymod.core.ReplayModIntegrationTest.MOD_ID; import static com.replaymod.core.ReplayModIntegrationTest.MOD_ID;
import static com.replaymod.core.Utils.addCallback; import static com.replaymod.core.utils.Utils.addCallback;
/** /**
* Helper mod that initiates the integration tests. * Helper mod that initiates the integration tests.

View File

@@ -1,28 +1,6 @@
package com.replaymod.core; package com.replaymod.core;
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.function.Consumer;
public class Utils { public class Utils {
public static <T> void addCallback(ListenableFuture<T> future, Consumer<T> onSuccess, Consumer<Throwable> onFailure) {
Futures.addCallback(future, new FutureCallback<T>() {
@Override
public void onSuccess(@Nullable T result) {
onSuccess.accept(result);
}
@Override
public void onFailure(@Nonnull Throwable t) {
onFailure.accept(t);
}
});
}
public static void times(int x, Runnable runnable) { public static void times(int x, Runnable runnable) {
for (int i = 0; i < x; i++) { for (int i = 0; i < x; i++) {
runnable.run(); runnable.run();

View File

@@ -2,6 +2,7 @@ package com.replaymod.core.utils;
import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
import de.johni0702.minecraft.gui.GuiRenderer; import de.johni0702.minecraft.gui.GuiRenderer;
import de.johni0702.minecraft.gui.RenderInfo; import de.johni0702.minecraft.gui.RenderInfo;
import de.johni0702.minecraft.gui.container.AbstractGuiScrollable; import de.johni0702.minecraft.gui.container.AbstractGuiScrollable;
@@ -25,6 +26,7 @@ import org.lwjgl.input.Keyboard;
import org.lwjgl.util.Dimension; import org.lwjgl.util.Dimension;
import org.lwjgl.util.ReadableDimension; import org.lwjgl.util.ReadableDimension;
import javax.annotation.Nonnull;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.imageio.ImageIO; import javax.imageio.ImageIO;
import javax.net.ssl.SSLContext; import javax.net.ssl.SSLContext;
@@ -45,6 +47,7 @@ import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
import java.util.UUID; import java.util.UUID;
import java.util.function.Consumer;
import static net.minecraft.client.Minecraft.getMinecraft; import static net.minecraft.client.Minecraft.getMinecraft;
@@ -149,6 +152,20 @@ public class Utils {
return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL); return Keyboard.isKeyDown(Keyboard.KEY_LCONTROL) || Keyboard.isKeyDown(Keyboard.KEY_RCONTROL);
} }
public static <T> void addCallback(ListenableFuture<T> future, Consumer<T> onSuccess, Consumer<Throwable> onFailure) {
Futures.addCallback(future, new FutureCallback<T>() {
@Override
public void onSuccess(@Nullable T result) {
onSuccess.accept(result);
}
@Override
public void onFailure(@Nonnull Throwable t) {
onFailure.accept(t);
}
});
}
public static GuiInfoPopup error(Logger logger, GuiContainer container, CrashReport crashReport, Runnable onClose) { public static GuiInfoPopup error(Logger logger, GuiContainer container, CrashReport crashReport, Runnable onClose) {
// Convert crash report to string // Convert crash report to string
String crashReportStr = crashReport.getCompleteReport(); String crashReportStr = crashReport.getCompleteReport();