X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Ffcp%2Fquelaton%2FGetNodeCommandImpl.java;h=24471797e09d7e3fdaafc16bc4232736fa36f3e2;hb=021111b5eb02f1071aaa306f172e833b73890011;hp=3c260ab2a7e01d156685fc0b2967287e766d08ba;hpb=d558b6c8d41b6b25adf49eadda1dae32af2c5933;p=jFCPlib.git diff --git a/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java b/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java index 3c260ab..2447179 100644 --- a/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java +++ b/src/main/java/net/pterodactylus/fcp/quelaton/GetNodeCommandImpl.java @@ -1,6 +1,7 @@ package net.pterodactylus.fcp.quelaton; import java.io.IOException; +import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutorService; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicReference; @@ -22,6 +23,8 @@ public class GetNodeCommandImpl implements GetNodeCommand { private final ListeningExecutorService threadPool; private final ConnectionSupplier connectionSupplier; private final AtomicBoolean giveOpennetRef = new AtomicBoolean(false); + private final AtomicBoolean includePrivate = new AtomicBoolean(false); + private final AtomicBoolean includeVolatile = new AtomicBoolean(false); public GetNodeCommandImpl(ExecutorService threadPool, ConnectionSupplier connectionSupplier) { this.threadPool = MoreExecutors.listeningDecorator(threadPool); @@ -35,9 +38,28 @@ public class GetNodeCommandImpl implements GetNodeCommand { } @Override + public GetNodeCommand includePrivate() { + includePrivate.set(true); + return this; + } + + @Override + public GetNodeCommand includeVolatile() { + includeVolatile.set(true); + return this; + } + + @Override public ListenableFuture execute() { - GetNode getNode = new GetNode(new RandomIdentifierGenerator().generate(), giveOpennetRef.get(), false, false); - return threadPool.submit(() -> new GetNodeReplySequence().send(getNode).get()); + return threadPool.submit(this::executeSequence); + } + + private NodeData executeSequence() throws InterruptedException, ExecutionException, IOException { + GetNode getNode = new GetNode(new RandomIdentifierGenerator().generate(), giveOpennetRef.get(), + includePrivate.get(), includeVolatile.get()); + try (GetNodeReplySequence getNodeReplySequence = new GetNodeReplySequence()) { + return getNodeReplySequence.send(getNode).get(); + } } private class GetNodeReplySequence extends FcpReplySequence {