FunctionWrapper

interface FunctionWrapper<T> : Publisher

FunctionWrapper is common interface for classes storing functions registered in schema by server code. Only up to 9 arguments are supported, because kotlin-reflect doesn't support invoking lambdas, local and anonymous functions yet, making implementation severely limited.

Types

ArityEight
Link copied to clipboard
class ArityEight<T, R, E, W, Q, A, S, D, F>(implementation: suspend (R, E, W, Q, A, S, D, F) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityFive
Link copied to clipboard
class ArityFive<T, R, E, W, Q, A>(implementation: suspend (R, E, W, Q, A) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityFour
Link copied to clipboard
class ArityFour<T, R, E, W, Q>(implementation: suspend (R, E, W, Q) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityN
Link copied to clipboard
class ArityN<T>(kFunction: KFunction<T>) : FunctionWrapper.Base<T>
ArityNine
Link copied to clipboard
class ArityNine<T, R, E, W, Q, A, S, D, F, G>(implementation: suspend (R, E, W, Q, A, S, D, F, G) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityOne
Link copied to clipboard
class ArityOne<T, R>(implementation: suspend (R) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
AritySeven
Link copied to clipboard
class AritySeven<T, R, E, W, Q, A, S, D>(implementation: suspend (R, E, W, Q, A, S, D) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
AritySix
Link copied to clipboard
class AritySix<T, R, E, W, Q, A, S>(implementation: suspend (R, E, W, Q, A, S) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityThree
Link copied to clipboard
class ArityThree<T, R, E, W>(implementation: suspend (R, E, W) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityTwo
Link copied to clipboard
class ArityTwo<T, R, E>(implementation: suspend (R, E) -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
ArityZero
Link copied to clipboard
class ArityZero<T>(implementation: suspend () -> T, hasReceiver: Boolean) : FunctionWrapper.Base<T>
Base
Link copied to clipboard
abstract class Base<T> : FunctionWrapper<T>
Companion
Link copied to clipboard
object Companion

Functions

arity
Link copied to clipboard
abstract fun arity(): Int
hasReturnType
Link copied to clipboard
open fun hasReturnType(): Boolean
invoke
Link copied to clipboard
abstract suspend fun invoke(vararg args: Any?): T?
abstract suspend fun invoke(args: List<Any?>, subscriptionArgs: List<String>, objectWriter: ObjectWriter): T?
subscribe
Link copied to clipboard
abstract fun subscribe(subscription: String, subscriber: Subscriber)
unsubscribe
Link copied to clipboard
abstract fun unsubscribe(subscription: String)
valueParameters
Link copied to clipboard
open fun valueParameters(): List<KParameter>
returns list of function parameters without receiver

Properties

argumentsDescriptor
Link copied to clipboard
abstract val argumentsDescriptor: Map<String, KType>
hasReceiver
Link copied to clipboard
abstract val hasReceiver: Boolean
denotes whether function is called with receiver argument.
kFunction
Link copied to clipboard
abstract val kFunction: KFunction<T>

Inheritors

DirectiveExecution
Link copied to clipboard
BaseOperationDef
Link copied to clipboard
FunctionWrapper
Link copied to clipboard
OperationDef
Link copied to clipboard
Transformation
Link copied to clipboard
Field
Link copied to clipboard
Field
Link copied to clipboard