@Override public void process(JsonObject document, Handler<AsyncResult<JsonObject>> resultHandler) { System.out.println("Processing..."); JsonObject result = document.copy(); if (!document.containsKey("name")) { resultHandler.handle(ServiceException.fail(NO_NAME_ERROR, "No name in the document")); } else if (document.getString("name").isEmpty() || document.getString("name").equalsIgnoreCase("bad")) { resultHandler.handle(ServiceException.fail(BAD_NAME_ERROR, "Bad name in the document: " + document.getString("name"), new JsonObject().put("name", document.getString("name")))); } else { result.put("approved", true); resultHandler.handle(Future.succeededFuture(result)); } }
@Override public void failingCall(String value, Handler<AsyncResult<JsonObject>> resultHandler) { if (value.equals("Fail")) { resultHandler.handle(ServiceException.fail(25, "Call has failed", new JsonObject().put("test", "val"))); } else if (value.equals("Fail subclass")) { resultHandler.handle(MyServiceException.fail(25, "Call has failed", "some extra")); } else { resultHandler.handle(Future.succeededFuture(new JsonObject())); } }
@Override public Service methodWthFailingResult(String input, Handler<AsyncResult<JsonObject>> result) { if (input.equals("Fail")) { result.handle(ServiceException.fail(30, "failed!", new JsonObject().put("test", "val"))); } else { result.handle(MyServiceException.fail(30, "failed!", "some extra")); } return this; }