+ public CompletableFuture<TopicPartition> receive(Transfer transfer)
+ {
+ transfer.setState(RECEIVED);
+ return messagingService.send(transfer);
+ }
+
+ @Override
+ public void handle(Transfer transfer)
+ {
+ Transfer.State state = transfer.getState();
+ switch (state)
+ {
+ case RECEIVED:
+ repository.store(transfer);
+ check(transfer);
+ break;
+
+ case CHECKED:
+ repository.store(transfer);
+ // TODO: What's next...?
+ break;
+
+ default:
+ log.warn("TODO: handle {} state {}", state.foreign ? "foreign" : "domain", state);
+ }
+ }
+
+ private void check(Transfer transfer)