class BPMNElementDecorators {

    public static <T extends BpmnNode> MarshallingMessageDecorator<T> bpmnNodeDecorator() {
        return MarshallingMessageDecorator.of(o ->
                                                      Optional.ofNullable(o.value()
                                                                                  .getContent()
                                                                                  .getDefinition()
                                                                                  .getGeneral()
                                                                                  .getName()
                                                                                  .getValue())
                                                              .orElseGet(() -> o.value().getUUID()),
                                              bpmnNode -> bpmnNode.value()
                                                      .getContent()
                                                      .getDefinition()
                                                      .getClass()
                                                      .getSimpleName());
    }

}