- private class GenerateKeypairCommandImpl implements GenerateKeypairCommand {
-
- @Override
- public Future<FcpKeyPair> execute() {
- return threadPool.submit(() -> {
- connect();
- Sequence sequence = new Sequence();
- FcpReplySequence replySequence = new FcpReplySequence(threadPool, fcpConnection.get());
- replySequence.handle(SSKKeypair.class).with(sequence::handleSSKKeypair);
- replySequence.waitFor(sequence::isFinished);
- replySequence.send(new GenerateSSK()).get();
- return sequence.getKeyPair();
- });
- }
-
- private class Sequence {
-
- private AtomicReference<FcpKeyPair> keyPair = new AtomicReference<>();
-
- public void handleSSKKeypair(SSKKeypair sskKeypair) {
- keyPair.set(new FcpKeyPair(sskKeypair.getRequestURI(), sskKeypair.getInsertURI()));
- }
+ @Override
+ public GenerateKeypairCommand generateKeypair() {
+ return new GenerateKeypairCommandImpl(threadPool, this::connect);
+ }