private JsonObject getData(MCRObject obj) {
JsonParser parser = new JsonParser();
JsonObject event = new JsonObject();
event.addProperty("id", obj.getId().toString());
event.addProperty("uri", uriResolver.apply(getPathURI("objects/" + obj.getId())).toString());
Optional.ofNullable(obj.getService().getState())
.ifPresent(s -> event.addProperty("state", s.getID()));
copyFlagToProperty(obj, event, "createdby", "createdBy");
copyServiceDateToProperty(obj, event, "createdate", "created");
copyFlagToProperty(obj, event, "modifiedby", "modifiedBy");
copyServiceDateToProperty(obj, event, "modifydate", "modified");
JsonArray pi = new JsonArray();
obj.getService().getFlags("MyCoRe-PI").stream()
.map(parser::parse)
.forEach(pi::add);
event.add("pi", pi);
return event;
}