``` override fun safeHandle(message: Message<M...
# codereview
f
Copy code
override fun safeHandle(message: Message<MessageBody>, messageBody: MessageBody, validEvents: List<String>): Observable<ServiceTaskResult> {
        return NodeManager.get(messageBody)
                .filter{ it != null}
                .flatMap { lastNode ->
                    val validEvents = FlowOrchestrator.getValidNextEvent(node, messageBody)
                    if (validEvents.isNotEmpty()) {
                        FlowOrchestrator.tryToDoNode(validEvents as MutableList<String>, lastNode, messageBody)
                    } else {
                        val eventName = lastNode.previousLinks.first().eventName
                        listOf(ServiceTaskResult(eventName, messageBody))
                    }.toObservable()
                }
    }