fun main() { | |
val executor = createActionExecutor() | |
executor.executeByResponse(Response("print", "leonidas")) | |
executor.executeByResponse(Response("log", "kotlin")) | |
executor.executeByResponse(Response("write_to_file", "leonidas loves kotlin")) | |
executor.executeByResponse(Response("print", "$&#$@#", isError = true)) | |
} | |
private fun createActionExecutor(): ActionExecutor { | |
val printInErrorStream = PrintInErrorStream().asChain { response -> response.isError } | |
val justPrint = Print().asChain { true } | |
return ActionExecutor().apply { | |
addAction(printInErrorStream.or(justPrint)) | |
addAction(Log()) | |
addAction(WriteToFile()) | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment