+ 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 (ClientGetDialog clientGetDialog = new ClientGetDialog()) {
+ return clientGetDialog.send(clientGet).get();
+ }
+ }
+
+ private ClientGet createClientGetCommand(String uri) {
+ String identifier = new RandomIdentifierGenerator().generate();