override fun invoke()

in core/src/main/java/com/epam/coroutinecache/internal/ProxyProvider.kt [28:42]


    override fun invoke(proxy: Any?, method: Method?, methodArgs: Array<out Any>?): Any? {
        val lastArg = methodArgs?.lastOrNull()
        return if (lastArg is Continuation<*>) {
            @Suppress("UNCHECKED_CAST")
            val cont = lastArg as? Continuation<Any?>
            val otherArgs = methodArgs.take(methodArgs.size - 1).toTypedArray()
            scope.launch {
                val data = processorProvider.process<Any>(proxyTranslator.processMethod(method, otherArgs))
                cont?.resume(data)
            }
            COROUTINE_SUSPENDED
        } else {
            null
        }
    }