FilterHandler.kt

  1. package com.hexagontk.handlers

  2. class FilterHandler<T : Any>(
  3.     override val predicate: (Context<T>) -> Boolean = { true },
  4.     val callback: (Context<T>) -> Context<T>,
  5. ) : Handler<T> {

  6.     override fun process(context: Context<T>): Context<T> =
  7.         try {
  8.             callback(context)
  9.         }
  10.         catch (e: Exception) {
  11.             context.with(exception = e)
  12.         }
  13. }