Refactor FCP dialog
[jFCPlib.git] / src / main / java / net / pterodactylus / fcp / quelaton / ClientHelloImpl.java
index 3ded685..551b52d 100644 (file)
@@ -44,8 +44,8 @@ public class ClientHelloImpl {
                FcpConnection connection = new FcpConnection(hostname, port);
                connection.connect();
                ClientHello clientHello = new ClientHello(clientName.get(), "2.0");
-               try (ClientHelloDialog nodeHelloSequence = new ClientHelloDialog(connection)) {
-                       if (nodeHelloSequence.send(clientHello).get()) {
+               try (ClientHelloDialog clientHelloDialog = new ClientHelloDialog(connection)) {
+                       if (clientHelloDialog.send(clientHello).get()) {
                                return connection;
                        }
                } catch (InterruptedException | ExecutionException e) {
@@ -58,25 +58,13 @@ public class ClientHelloImpl {
 
        private class ClientHelloDialog extends FcpDialog<Boolean> {
 
-               private final AtomicReference<NodeHello> receivedNodeHello = new AtomicReference<>();
-
                public ClientHelloDialog(FcpConnection connection) {
-                       super(ClientHelloImpl.this.threadPool, connection);
-               }
-
-               @Override
-               protected boolean isFinished() {
-                       return receivedNodeHello.get() != null;
-               }
-
-               @Override
-               protected Boolean getResult() {
-                       return receivedNodeHello.get() != null;
+                       super(ClientHelloImpl.this.threadPool, connection, false);
                }
 
                @Override
                protected void consumeNodeHello(NodeHello nodeHello) {
-                       receivedNodeHello.set(nodeHello);
+                       setResult(true);
                }
 
        }