All Downloads are FREE. Search and download functionalities are using the official Maven repository.

name.remal.gradle_plugins.dsl.extensions.name.remal.proxy.CompositeInvocationHandler.kt Maven / Gradle / Ivy

There is a newer version: 1.9.2
Show newest version
package name.remal.gradle_plugins.dsl.extensions

import name.remal.proxy.CompositeInvocationHandler
import java.lang.reflect.Method

fun CompositeInvocationHandler.appendMethodHandler(name: String, vararg paramTypes: Class<*>, handler: (proxy: Any, method: Method, args: Array) -> Any?) = appendMethodHandler(
    condition@{
        if (it.parameterCount != paramTypes.size) return@condition false
        if (it.name != name) return@condition false
        it.parameterTypes.forEachIndexed { index, type ->
            if (!type.isAssignableFrom(paramTypes[index])) return@condition false
        }
        return@condition true

    },
    handler@{ proxy, method, args ->
        return@handler handler(proxy, method, args ?: emptyArray())
    }
)




© 2015 - 2024 Weber Informatics LLC | Privacy Policy