public void handle(Message<JsonObject> msg) {
   try {
     JsonObject json = msg.body();
     String action = msg.headers().get("action");
     if (action == null) {
       throw new IllegalStateException("action not specified");
     }
     accessed();
     switch (action) {
       case "checkin":
         {
           service.checkin(
               (java.lang.String) json.getValue("name"),
               json.getValue("lat") == null ? null : (json.getDouble("lat").doubleValue()),
               json.getValue("lon") == null ? null : (json.getDouble("lon").doubleValue()),
               createHandler(msg));
           break;
         }
       case "getCheckins":
         {
           service.getCheckins(
               res -> {
                 if (res.failed()) {
                   msg.fail(-1, res.cause().getMessage());
                 } else {
                   msg.reply(
                       new JsonArray(
                           res.result()
                               .stream()
                               .map(Checkin::toJson)
                               .collect(Collectors.toList())));
                 }
               });
           break;
         }
       default:
         {
           throw new IllegalStateException("Invalid action: " + action);
         }
     }
   } catch (Throwable t) {
     msg.fail(-1, t.getMessage());
     throw t;
   }
 }
 public static boolean match(JsonObject registration, JsonObject query) {
   // A service registration match <=> all values from the query matches.
   // If the query as a value set to "*" any value are accepted
   for (Map.Entry<String, Object> entry : query) {
     Object value = registration.getValue(entry.getKey());
     if (value != null) {
       if (!entry.getValue().equals("*") && !value.equals(entry.getValue())) {
         return false;
       }
     }
   }
   return true;
 }
 @Override
 public JsonObject transform(JsonObject json) {
   if (json == null) {
     return null;
   }
   converters.forEach(
       (k, v) -> {
         Object value = json.getValue(k);
         if (value != null) {
           json.put(k, v.apply(value));
         }
       });
   return json;
 }
  @Override
  public BsonValue getDocumentId(JsonObject json) {
    if (!documentHasId(json)) {
      throw new IllegalStateException("The document does not contain an _id");
    }

    Object id = json.getValue(ID_FIELD);
    if (id instanceof String) {
      return new BsonString((String) id);
    }

    BsonDocument idHoldingDocument = new BsonDocument();
    BsonWriter writer = new BsonDocumentWriter(idHoldingDocument);
    writer.writeStartDocument();
    writer.writeName(ID_FIELD);
    writeValue(writer, null, id, EncoderContext.builder().build());
    writer.writeEndDocument();
    return idHoldingDocument.get(ID_FIELD);
  }
 public static void fromJson(JsonObject json, Place obj) {
   if (json.getValue("address") instanceof String) {
     obj.setAddress((String) json.getValue("address"));
   }
   if (json.getValue("category") instanceof String) {
     obj.setCategory((String) json.getValue("category"));
   }
   if (json.getValue("description") instanceof String) {
     obj.setDescription((String) json.getValue("description"));
   }
   if (json.getValue("latitude") instanceof Number) {
     obj.setLatitude(((Number) json.getValue("latitude")).doubleValue());
   }
   if (json.getValue("longitude") instanceof Number) {
     obj.setLongitude(((Number) json.getValue("longitude")).doubleValue());
   }
   if (json.getValue("name") instanceof String) {
     obj.setName((String) json.getValue("name"));
   }
   if (json.getValue("tags") instanceof JsonArray) {
     java.util.List<java.lang.String> list = new java.util.ArrayList<>();
     json.getJsonArray("tags")
         .forEach(
             item -> {
               if (item instanceof String) list.add((String) item);
             });
     obj.setTags(list);
   }
 }
 @CodeTranslate
 public void getValueFromIdentifier() throws Exception {
   JsonObject obj = new JsonObject().put("foo", "foo_value");
   JsonTest.o = obj.getValue("foo");
 }
 @Override
 protected void beforeFields(JsonObject object, BiConsumer<String, Object> objectConsumer) {
   if (object.containsKey(ID_FIELD)) {
     objectConsumer.accept(ID_FIELD, object.getValue(ID_FIELD));
   }
 }
 public static void fromJson(JsonObject json, VertxApiRequest obj) {
   if (json.getValue("apiKey") instanceof String) {
     obj.setApiKey((String) json.getValue("apiKey"));
   }
   if (json.getValue("destination") instanceof String) {
     obj.setDestination((String) json.getValue("destination"));
   }
   if (json.getValue("headers") instanceof JsonObject) {
     HeaderMap map = new HeaderMap();
     json.getJsonObject("headers")
         .forEach(
             entry -> {
               if (entry.getValue() instanceof String)
                 map.put(entry.getKey(), (String) entry.getValue());
             });
     obj.setHeaders(map);
   }
   if (json.getValue("queryParams") instanceof JsonObject) {
     QueryMap map = new QueryMap();
     json.getJsonObject("queryParams")
         .forEach(
             entry -> {
               if (entry.getValue() instanceof String)
                 map.put(entry.getKey(), (String) entry.getValue());
             });
     obj.setQueryParams(map);
   }
   if (json.getValue("rawRequest") instanceof Object) {
     obj.setRawRequest(json.getValue("rawRequest"));
   }
   if (json.getValue("remoteAddr") instanceof String) {
     obj.setRemoteAddr((String) json.getValue("remoteAddr"));
   }
   if (json.getValue("serviceId") instanceof String) {
     obj.setApiId((String) json.getValue("serviceId"));
   }
   if (json.getValue("serviceOrgId") instanceof String) {
     obj.setApiOrgId((String) json.getValue("serviceOrgId"));
   }
   if (json.getValue("serviceVersion") instanceof String) {
     obj.setApiVersion((String) json.getValue("serviceVersion"));
   }
   if (json.getValue("transportSecure") instanceof Boolean) {
     obj.setTransportSecure((Boolean) json.getValue("transportSecure"));
   }
   if (json.getValue("type") instanceof String) {
     obj.setType((String) json.getValue("type"));
   }
 }