@Override public void getRecords(Function<Record, Boolean> filter, boolean includeOutOfService, Handler<AsyncResult<List<Record>>> resultHandler) { Objects.requireNonNull(filter); backend.getRecords(list -> { if (list.failed()) { resultHandler.handle(Future.failedFuture(list.cause())); } else { resultHandler.handle(Future.succeededFuture( list.result().stream() .filter(filter::apply) .filter(record -> includeOutOfService || record.getStatus() == Status.UP) .collect(Collectors.toList()) )); } }); }
@Override public void getRecords(Function<Record, Boolean> filter, boolean includeOutOfService, Handler<AsyncResult<List<Record>>> resultHandler) { Objects.requireNonNull(filter); backend.getRecords(list -> { if (list.failed()) { resultHandler.handle(Future.failedFuture(list.cause())); } else { resultHandler.handle(Future.succeededFuture( list.result().stream() .filter(filter::apply) .filter(record -> includeOutOfService || record.getStatus() == Status.UP) .collect(Collectors.toList()) )); } }); }
@Override public void getRecord(Function<Record, Boolean> filter, boolean includeOutOfService, Handler<AsyncResult<Record>> resultHandler) { Objects.requireNonNull(filter); backend.getRecords(list -> { if (list.failed()) { resultHandler.handle(Future.failedFuture(list.cause())); } else { Optional<Record> any = list.result().stream() .filter(filter::apply) .filter(record -> includeOutOfService || record.getStatus() == Status.UP) .findAny(); if (any.isPresent()) { resultHandler.handle(Future.succeededFuture(any.get())); } else { resultHandler.handle(Future.succeededFuture(null)); } } }); }
@Override public void getRecord(Function<Record, Boolean> filter, boolean includeOutOfService, Handler<AsyncResult<Record>> resultHandler) { Objects.requireNonNull(filter); backend.getRecords(list -> { if (list.failed()) { resultHandler.handle(Future.failedFuture(list.cause())); } else { Optional<Record> any = list.result().stream() .filter(filter::apply) .filter(record -> includeOutOfService || record.getStatus() == Status.UP) .findAny(); if (any.isPresent()) { resultHandler.handle(Future.succeededFuture(any.get())); } else { resultHandler.handle(Future.succeededFuture(null)); } } }); }
backend.getRecords(ar -> { records.addAll(ar.result()); });
backend.getRecords(ar -> { records.addAll(ar.result()); });