class BPMNElementDecorators {

    public static MarshallingMessageDecorator<Result> resultBpmnDecorator() {
        return MarshallingMessageDecorator.of(r ->
                                              {
                                                  BpmnNode o = (BpmnNode) r.value();
                                                  return Optional.ofNullable(o.value()
                                                                                     .getContent()
                                                                                     .getDefinition()
                                                                                     .getGeneral()
                                                                                     .getName()
                                                                                     .getValue())
                                                          .orElseGet(() -> o.value().getUUID());
                                              },
                                              r -> {
                                                  BpmnNode o1 = (BpmnNode) r.value();
                                                  return o1.value()
                                                          .getContent()
                                                          .getDefinition()
                                                          .getClass()
                                                          .getSimpleName();
                                              });
    }

}