+ public Executable<Optional<Data>> uri(String uri) {
+ return () -> threadPool.submit(() -> execute(uri));
+ }
+
+ private Optional<Data> execute(String uri) throws InterruptedException, ExecutionException, IOException {
+ ClientGet clientGet = createClientGetCommand(uri);
+ try (ClientGetReplySequence clientGetReplySequence = new ClientGetReplySequence()) {
+ return clientGetReplySequence.send(clientGet).get();
+ }
+ }
+
+ private ClientGet createClientGetCommand(String uri) {
+ String identifier = new RandomIdentifierGenerator().generate();