public static void fromJson(Iterable<java.util.Map.Entry<String, Object>> json, CheckList obj) { for (java.util.Map.Entry<String, Object> member : json) { switch (member.getKey()) { case "index": if (member.getValue() instanceof Number) { obj.setIndex(((Number)member.getValue()).longValue()); } break; case "list": if (member.getValue() instanceof JsonArray) { java.util.ArrayList<io.vertx.ext.consul.Check> list = new java.util.ArrayList<>(); ((Iterable<Object>)member.getValue()).forEach( item -> { if (item instanceof JsonObject) list.add(new io.vertx.ext.consul.Check((JsonObject)item)); }); obj.setList(list); } break; } } }
@Override public ConsulClient healthStateWithOptions(HealthState healthState, CheckQueryOptions options, Handler<AsyncResult<CheckList>> resultHandler) { Query query = options == null ? null : Query.of("near", options.getNear()).put(options.getBlockingOptions()); requestArray(HttpMethod.GET, "/v1/health/state/" + healthState.key, query, null, resultHandler, (arr, headers) -> { List<Check> list = arr.stream().map(obj -> CheckParser.parse((JsonObject) obj)).collect(Collectors.toList()); return new CheckList().setList(list).setIndex(Long.parseLong(headers.get(INDEX_HEADER))); }); return this; }
@Override public ConsulClient healthChecksWithOptions(String service, CheckQueryOptions options, Handler<AsyncResult<CheckList>> resultHandler) { Query query = options == null ? null : Query.of("near", options.getNear()).put(options.getBlockingOptions()); requestArray(HttpMethod.GET, "/v1/health/checks/" + urlEncode(service), query, null, resultHandler, (arr, headers) -> { List<Check> list = arr.stream().map(obj -> CheckParser.parse((JsonObject) obj)).collect(Collectors.toList()); return new CheckList().setList(list).setIndex(Long.parseLong(headers.get(INDEX_HEADER))); }); return this; }
@Test public void testCheckListCopy() { List<Check> checks = new ArrayList<>(); checks.add(randomCheck()); checks.add(randomCheck()); CheckList list = new CheckList() .setIndex(randomPositiveInt()) .setList(checks); checkCheckList(list, new CheckList(list)); checkCheckList(list, new CheckList(list.toJson())); List<Check> shuffledEvents = new ArrayList<>(); shuffledEvents.add(checks.get(1)); shuffledEvents.add(checks.get(0)); CheckList shuffled = new CheckList() .setIndex(list.getIndex()) .setList(shuffledEvents); checkCheckList(list, shuffled); }