FunctionalBindableEventListener

abstract class FunctionalBindableEventListener(instance: Any?, val caller: KFunction<*>, dispatcherContext: CoroutineContext = Dispatchers.IO) : FunctionalEventListener(source)

可以进行动态参数绑定的 FunctionalEventListener, 可以通过 binderscaller 进行参数绑定。

invoke 中,如果 caller 是可挂起的(isSuspend = true), 则通过可挂起执行。 如果不是可挂起的,则会通过 runInterruptible 在可中断中普通执行。 runInterruptible 会使用 dispatcherContext 作为调度器。

Constructors

Link copied to clipboard
constructor(instance: Any?, caller: KFunction<*>, dispatcherContext: CoroutineContext = Dispatchers.IO)

Properties

Link copied to clipboard
protected abstract val binders: Array<ParameterBinder>

binder数组,其索引下标应当与 KCallable.parameters (不包括 INSTANCE) 的 KParameter.index 相对应。 在使用 binders 时,会直接按照其顺序转化为对应的值。

Link copied to clipboard
override val caller: KFunction<*>

当前监听函数所对应的执行器。

Functions

Link copied to clipboard
protected open fun convertValue(value: Any?, parameter: KParameter): Any?

对结果的数据类型进行转化。

Link copied to clipboard
open suspend override fun EventListenerContext.handle(): EventResult

函数执行。

Link copied to clipboard
protected abstract suspend fun match(context: EventListenerContext): Boolean

可能存在的整合到 handle 中的逻辑匹配。

Link copied to clipboard
protected open fun resultProcess(result: Any?): EventResult

caller 执行后的返回值进行处理并转化为 EventResult. 可覆盖并自定义结果逻辑。