From fe7820fec9c8cf6a48eef2c860347bb4e0f91751 Mon Sep 17 00:00:00 2001 From: Hao Chen Date: Wed, 4 Mar 2020 22:39:23 +0800 Subject: [PATCH] [Java] New Java actor API (#7414) --- .../src/main/java/org/ray/api/ActorCall.java | 654 +++++++++ .../src/main/java/org/ray/api/RayActor.java | 26 +- .../src/main/java/org/ray/api/RayCall.java | 1271 ++++++++++------- .../org/ray/api/annotation/RayRemote.java | 18 - .../java/org/ray/api/runtime/RayRuntime.java | 2 +- java/checkstyle-suppressions.xml | 1 + .../org/ray/runtime/AbstractRayRuntime.java | 2 +- .../runtime/RayMultiWorkerNativeRuntime.java | 4 +- .../runtime/functionmanager/RayFunction.java | 16 - .../util/generator/RayCallGenerator.java | 99 +- .../functionmanager/FunctionManagerTest.java | 9 - .../src/main/java/org/ray/api/TestUtils.java | 2 - .../org/ray/api/benchmark/ActorPressTest.java | 4 +- .../ray/api/benchmark/MaxPressureTest.java | 2 - .../benchmark/RateLimiterPressureTest.java | 2 - .../ray/api/benchmark/RayBenchmarkTest.java | 2 - .../ray/api/benchmark/SingleLatencyTest.java | 2 - .../ray/api/test/ActorConcurrentCallTest.java | 8 +- .../ray/api/test/ActorReconstructionTest.java | 26 +- .../main/java/org/ray/api/test/ActorTest.java | 29 +- .../api/test/CrossLanguageInvocationTest.java | 2 - .../org/ray/api/test/DynamicResourceTest.java | 2 - .../java/org/ray/api/test/FailureTest.java | 8 +- .../java/org/ray/api/test/HelloWorldTest.java | 4 - .../java/org/ray/api/test/KillActorTest.java | 6 +- .../api/test/MultiLanguageClusterTest.java | 2 - .../org/ray/api/test/MultiThreadingTest.java | 12 +- .../java/org/ray/api/test/PlasmaFreeTest.java | 2 - .../java/org/ray/api/test/RayCallTest.java | 20 - .../org/ray/api/test/RedisPasswordTest.java | 2 - .../ray/api/test/ResourcesManagementTest.java | 7 +- .../org/ray/api/test/RuntimeContextTest.java | 4 +- .../ray/api/test/SingleProcessModeTest.java | 6 +- .../java/org/ray/api/test/StressTest.java | 4 +- .../main/java/org/ray/api/test/WaitTest.java | 4 - .../ray/api/test/WorkerJvmOptionsTest.java | 4 +- .../java/org/ray/exercise/Exercise01.java | 4 - .../java/org/ray/exercise/Exercise02.java | 4 - .../java/org/ray/exercise/Exercise03.java | 3 - .../java/org/ray/exercise/Exercise04.java | 4 - .../java/org/ray/exercise/Exercise05.java | 7 +- .../runtime/python/PythonGateway.java | 2 - .../runtime/schedule/JobSchedulerImpl.java | 2 +- .../streaming/runtime/worker/JobWorker.java | 2 - .../streamingqueue/StreamingQueueTest.java | 14 +- .../runtime/streamingqueue/Worker.java | 19 +- 46 files changed, 1576 insertions(+), 753 deletions(-) create mode 100644 java/api/src/main/java/org/ray/api/ActorCall.java delete mode 100644 java/api/src/main/java/org/ray/api/annotation/RayRemote.java diff --git a/java/api/src/main/java/org/ray/api/ActorCall.java b/java/api/src/main/java/org/ray/api/ActorCall.java new file mode 100644 index 000000000..34dfee27e --- /dev/null +++ b/java/api/src/main/java/org/ray/api/ActorCall.java @@ -0,0 +1,654 @@ +// Generated by `RayCallGenerator.java`. DO NOT EDIT. + +package org.ray.api; + +import org.ray.api.function.RayFunc1; +import org.ray.api.function.RayFunc2; +import org.ray.api.function.RayFunc3; +import org.ray.api.function.RayFunc4; +import org.ray.api.function.RayFunc5; +import org.ray.api.function.RayFunc6; +import org.ray.api.function.RayFuncVoid1; +import org.ray.api.function.RayFuncVoid2; +import org.ray.api.function.RayFuncVoid3; +import org.ray.api.function.RayFuncVoid4; +import org.ray.api.function.RayFuncVoid5; +import org.ray.api.function.RayFuncVoid6; + +/** + * This class provides type-safe interfaces for remote actor calls. + **/ +@SuppressWarnings({"rawtypes", "unchecked"}) +interface ActorCall { + + default RayObject call(RayFunc1 f) { + Object[] args = new Object[]{}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid1 f) { + Object[] args = new Object[]{}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc2 f, T0 t0) { + Object[] args = new Object[]{t0}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc2 f, RayObject t0) { + Object[] args = new Object[]{t0}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid2 f, T0 t0) { + Object[] args = new Object[]{t0}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid2 f, RayObject t0) { + Object[] args = new Object[]{t0}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc3 f, T0 t0, T1 t1) { + Object[] args = new Object[]{t0, t1}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc3 f, T0 t0, RayObject t1) { + Object[] args = new Object[]{t0, t1}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc3 f, RayObject t0, T1 t1) { + Object[] args = new Object[]{t0, t1}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc3 f, RayObject t0, RayObject t1) { + Object[] args = new Object[]{t0, t1}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid3 f, T0 t0, T1 t1) { + Object[] args = new Object[]{t0, t1}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid3 f, T0 t0, RayObject t1) { + Object[] args = new Object[]{t0, t1}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid3 f, RayObject t0, T1 t1) { + Object[] args = new Object[]{t0, t1}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid3 f, RayObject t0, RayObject t1) { + Object[] args = new Object[]{t0, t1}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, T0 t0, T1 t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, T0 t0, T1 t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, T0 t0, RayObject t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, T0 t0, RayObject t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, RayObject t0, T1 t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, RayObject t0, T1 t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, RayObject t0, RayObject t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, T0 t0, T1 t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, T0 t0, T1 t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, T0 t0, RayObject t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, T0 t0, RayObject t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, RayObject t0, T1 t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, RayObject t0, T1 t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, RayObject t0, RayObject t1, T2 t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid4 f, RayObject t0, RayObject t1, RayObject t2) { + Object[] args = new Object[]{t0, t1, t2}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { + Object[] args = new Object[]{t0, t1, t2, t3}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + return Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + + default void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { + Object[] args = new Object[]{t0, t1, t2, t3, t4}; + Ray.internal().callActor(f, (RayActor) this, args); + } + +} diff --git a/java/api/src/main/java/org/ray/api/RayActor.java b/java/api/src/main/java/org/ray/api/RayActor.java index cf22a0b7d..a9ec9c94f 100644 --- a/java/api/src/main/java/org/ray/api/RayActor.java +++ b/java/api/src/main/java/org/ray/api/RayActor.java @@ -3,14 +3,34 @@ package org.ray.api; import org.ray.api.id.ActorId; /** - * A handle to an actor. + * A handle to an actor.

* - * @param The type of the concrete actor class. + * A handle can be used to invoke a remote actor method, with the {@code "call"} method. For + * example: + *

 {@code
+ * class MyActor {
+ *   public int echo(int x) {
+ *     return x;
+ *   }
+ * }
+ * // Create an actor, and get a handle.
+ * RayActor myActor = Ray.createActor(RayActor::new);
+ * // Call the `echo` method remotely.
+ * RayObject result = myActor.call(MyActor::echo, 1);
+ * // Get the result of the remote `echo` method.
+ * Assert.assertEqual(result.get(), 1);
+ * }
+ * + * Note, the {@code "call"} method is defined in {@link ActorCall} interface, with multiple + * overloaded versions. + * + * @param
The type of the concrete actor class. */ -public interface RayActor { +public interface RayActor extends ActorCall { /** * @return The id of this actor. */ ActorId getId(); + } diff --git a/java/api/src/main/java/org/ray/api/RayCall.java b/java/api/src/main/java/org/ray/api/RayCall.java index 7e5b1fd2a..4bd537d0e 100644 --- a/java/api/src/main/java/org/ray/api/RayCall.java +++ b/java/api/src/main/java/org/ray/api/RayCall.java @@ -1,4 +1,4 @@ -// generated automatically, do not modify. +// Generated by `RayCallGenerator.java`. DO NOT EDIT. package org.ray.api; @@ -31,2541 +31,2542 @@ class RayCall { Object[] args = new Object[]{}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc0 f, CallOptions options) { Object[] args = new Object[]{}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid0 f) { Object[] args = new Object[]{}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid0 f, CallOptions options) { Object[] args = new Object[]{}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc1 f, T0 t0) { Object[] args = new Object[]{t0}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc1 f, RayObject t0) { Object[] args = new Object[]{t0}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc1 f, T0 t0, CallOptions options) { Object[] args = new Object[]{t0}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc1 f, RayObject t0, CallOptions options) { Object[] args = new Object[]{t0}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid1 f, T0 t0) { Object[] args = new Object[]{t0}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid1 f, RayObject t0) { Object[] args = new Object[]{t0}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid1 f, T0 t0, CallOptions options) { Object[] args = new Object[]{t0}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid1 f, RayObject t0, CallOptions options) { Object[] args = new Object[]{t0}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc2 f, T0 t0, T1 t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc2 f, T0 t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc2 f, RayObject t0, T1 t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc2 f, RayObject t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc2 f, T0 t0, T1 t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc2 f, T0 t0, RayObject t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc2 f, RayObject t0, T1 t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc2 f, RayObject t0, RayObject t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid2 f, T0 t0, T1 t1) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid2 f, T0 t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid2 f, RayObject t0, T1 t1) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid2 f, RayObject t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid2 f, T0 t0, T1 t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid2 f, T0 t0, RayObject t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid2 f, RayObject t0, T1 t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid2 f, RayObject t0, RayObject t1, CallOptions options) { Object[] args = new Object[]{t0, t1}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, T0 t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, T0 t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, T0 t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, T0 t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, RayObject t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, RayObject t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, RayObject t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, RayObject t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc3 f, T0 t0, T1 t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, T0 t0, T1 t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, T0 t0, RayObject t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, T0 t0, RayObject t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, RayObject t0, T1 t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, RayObject t0, T1 t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, RayObject t0, RayObject t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc3 f, RayObject t0, RayObject t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, T0 t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, T0 t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, T0 t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, T0 t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, RayObject t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, RayObject t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, RayObject t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, RayObject t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid3 f, T0 t0, T1 t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, T0 t0, T1 t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, T0 t0, RayObject t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, T0 t0, RayObject t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, RayObject t0, T1 t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, RayObject t0, T1 t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, RayObject t0, RayObject t1, T2 t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid3 f, RayObject t0, RayObject t1, RayObject t2, CallOptions options) { Object[] args = new Object[]{t0, t1, t2}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, T1 t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, T1 t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, T2 t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, null); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static RayObject call(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, null); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } + public static void call(RayFuncVoid6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, CallOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; Ray.internal().call(f, args, options); } - // =========================================== - // Methods for remote actor method invocation. - // =========================================== - public static RayObject call(RayFunc1 f, RayActor actor) { - Object[] args = new Object[]{}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid1 f, RayActor actor) { - Object[] args = new Object[]{}; - Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc2 f, RayActor actor, T0 t0) { - Object[] args = new Object[]{t0}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc2 f, RayActor actor, RayObject t0) { - Object[] args = new Object[]{t0}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid2 f, RayActor actor, T0 t0) { - Object[] args = new Object[]{t0}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid2 f, RayActor actor, RayObject t0) { - Object[] args = new Object[]{t0}; - Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc3 f, RayActor actor, T0 t0, T1 t1) { - Object[] args = new Object[]{t0, t1}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc3 f, RayActor actor, T0 t0, RayObject t1) { - Object[] args = new Object[]{t0, t1}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc3 f, RayActor actor, RayObject t0, T1 t1) { - Object[] args = new Object[]{t0, t1}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc3 f, RayActor actor, RayObject t0, RayObject t1) { - Object[] args = new Object[]{t0, t1}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid3 f, RayActor actor, T0 t0, T1 t1) { - Object[] args = new Object[]{t0, t1}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid3 f, RayActor actor, T0 t0, RayObject t1) { - Object[] args = new Object[]{t0, t1}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid3 f, RayActor actor, RayObject t0, T1 t1) { - Object[] args = new Object[]{t0, t1}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid3 f, RayActor actor, RayObject t0, RayObject t1) { - Object[] args = new Object[]{t0, t1}; - Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, T0 t0, T1 t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, T0 t0, T1 t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, T0 t0, RayObject t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, T0 t0, RayObject t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, RayObject t0, T1 t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, RayObject t0, T1 t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, RayObject t0, RayObject t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc4 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, T0 t0, T1 t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, T0 t0, T1 t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, T0 t0, RayObject t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, T0 t0, RayObject t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, RayObject t0, T1 t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, RayObject t0, T1 t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, RayObject t0, RayObject t1, T2 t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid4 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2) { - Object[] args = new Object[]{t0, t1, t2}; - Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc5 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid5 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { - Object[] args = new Object[]{t0, t1, t2, t3}; - Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static RayObject call(RayFunc6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - return Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } - public static void call(RayFuncVoid6 f, RayActor actor, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { - Object[] args = new Object[]{t0, t1, t2, t3, t4}; - Ray.internal().call(f, actor, args); - } + // =========================== // Methods for actor creation. // =========================== @@ -2573,1018 +2574,1272 @@ class RayCall { Object[] args = new Object[]{}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc0 f, ActorCreationOptions options) { Object[] args = new Object[]{}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc1 f, T0 t0) { Object[] args = new Object[]{t0}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc1 f, RayObject t0) { Object[] args = new Object[]{t0}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc1 f, T0 t0, ActorCreationOptions options) { Object[] args = new Object[]{t0}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc1 f, RayObject t0, ActorCreationOptions options) { Object[] args = new Object[]{t0}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc2 f, T0 t0, T1 t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc2 f, T0 t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc2 f, RayObject t0, T1 t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc2 f, RayObject t0, RayObject t1) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc2 f, T0 t0, T1 t1, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc2 f, T0 t0, RayObject t1, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc2 f, RayObject t0, T1 t1, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc2 f, RayObject t0, RayObject t1, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, T0 t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, T0 t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, T0 t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, T0 t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, RayObject t0, T1 t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, RayObject t0, T1 t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, RayObject t0, RayObject t1, T2 t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, RayObject t0, RayObject t1, RayObject t2) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc3 f, T0 t0, T1 t1, T2 t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, T0 t0, T1 t1, RayObject t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, T0 t0, RayObject t1, T2 t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, T0 t0, RayObject t1, RayObject t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, RayObject t0, T1 t1, T2 t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, RayObject t0, T1 t1, RayObject t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, RayObject t0, RayObject t1, T2 t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc3 f, RayObject t0, RayObject t1, RayObject t2, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, T2 t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, T2 t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, RayObject t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, T1 t1, RayObject t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, T2 t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, T2 t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, T2 t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, T2 t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc4 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc5 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, null); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, T0 t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, T1 t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, T2 t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, T3 t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, T4 t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, T5 t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + public static RayActor createActor(RayFunc6 f, RayObject t0, RayObject t1, RayObject t2, RayObject t3, RayObject t4, RayObject t5, ActorCreationOptions options) { Object[] args = new Object[]{t0, t1, t2, t3, t4, t5}; return Ray.internal().createActor(f, args, options); } + // =========================== // Cross-language methods. // =========================== diff --git a/java/api/src/main/java/org/ray/api/annotation/RayRemote.java b/java/api/src/main/java/org/ray/api/annotation/RayRemote.java deleted file mode 100644 index 197ee663f..000000000 --- a/java/api/src/main/java/org/ray/api/annotation/RayRemote.java +++ /dev/null @@ -1,18 +0,0 @@ -package org.ray.api.annotation; - -import java.lang.annotation.Documented; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; - -/** - * Defines a remote function (when used on a method), - * or an actor (when used on a class). - */ -@Documented -@Retention(RetentionPolicy.RUNTIME) -@Target({ElementType.METHOD, ElementType.TYPE}) -public @interface RayRemote { - -} diff --git a/java/api/src/main/java/org/ray/api/runtime/RayRuntime.java b/java/api/src/main/java/org/ray/api/runtime/RayRuntime.java index 1881064ed..595049306 100644 --- a/java/api/src/main/java/org/ray/api/runtime/RayRuntime.java +++ b/java/api/src/main/java/org/ray/api/runtime/RayRuntime.java @@ -101,7 +101,7 @@ public interface RayRuntime { * @param args The arguments of the remote function. * @return The result object. */ - RayObject call(RayFunc func, RayActor actor, Object[] args); + RayObject callActor(RayFunc func, RayActor actor, Object[] args); /** * Create an actor on a remote node. diff --git a/java/checkstyle-suppressions.xml b/java/checkstyle-suppressions.xml index 4a2abf4a5..0187ac392 100644 --- a/java/checkstyle-suppressions.xml +++ b/java/checkstyle-suppressions.xml @@ -11,6 +11,7 @@ + diff --git a/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java b/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java index 5ae71302d..27b95d8c4 100644 --- a/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java +++ b/java/runtime/src/main/java/org/ray/runtime/AbstractRayRuntime.java @@ -98,7 +98,7 @@ public abstract class AbstractRayRuntime implements RayRuntime { } @Override - public RayObject call(RayFunc func, RayActor actor, Object[] args) { + public RayObject callActor(RayFunc func, RayActor actor, Object[] args) { FunctionDescriptor functionDescriptor = functionManager.getFunction(workerContext.getCurrentJobId(), func) .functionDescriptor; diff --git a/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java b/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java index 0357278ff..c2d706318 100644 --- a/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java +++ b/java/runtime/src/main/java/org/ray/runtime/RayMultiWorkerNativeRuntime.java @@ -149,8 +149,8 @@ public class RayMultiWorkerNativeRuntime implements RayRuntime { } @Override - public RayObject call(RayFunc func, RayActor actor, Object[] args) { - return getCurrentRuntime().call(func, actor, args); + public RayObject callActor(RayFunc func, RayActor actor, Object[] args) { + return getCurrentRuntime().callActor(func, actor, args); } @Override diff --git a/java/runtime/src/main/java/org/ray/runtime/functionmanager/RayFunction.java b/java/runtime/src/main/java/org/ray/runtime/functionmanager/RayFunction.java index 27b9927a9..9ebe6cf0a 100644 --- a/java/runtime/src/main/java/org/ray/runtime/functionmanager/RayFunction.java +++ b/java/runtime/src/main/java/org/ray/runtime/functionmanager/RayFunction.java @@ -3,7 +3,6 @@ package org.ray.runtime.functionmanager; import java.lang.reflect.Constructor; import java.lang.reflect.Executable; import java.lang.reflect.Method; -import org.ray.api.annotation.RayRemote; /** * Represents a Ray function (either a Method or a Constructor in Java) and its metadata. @@ -57,21 +56,6 @@ public class RayFunction { return functionDescriptor; } - public RayRemote getRayRemoteAnnotation() { - RayRemote rayRemote; - - // If this method is a constructor, the task of it should be a actorCreationTask. - // And the annotation of actorCreationTask should inherit from class. - // Otherwise, it's a normal method, and it shouldn't inherit annotation from class. - if (isConstructor()) { - rayRemote = executable.getDeclaringClass().getAnnotation(RayRemote.class); - } else { - rayRemote = executable.getAnnotation(RayRemote.class); - } - - return rayRemote; - } - /** * @return Whether this function has a return value. */ diff --git a/java/runtime/src/main/java/org/ray/runtime/util/generator/RayCallGenerator.java b/java/runtime/src/main/java/org/ray/runtime/util/generator/RayCallGenerator.java index dc916fbf9..21330bc8c 100644 --- a/java/runtime/src/main/java/org/ray/runtime/util/generator/RayCallGenerator.java +++ b/java/runtime/src/main/java/org/ray/runtime/util/generator/RayCallGenerator.java @@ -8,18 +8,18 @@ import java.util.List; import org.apache.commons.io.FileUtils; /** - * A util class that generates `RayCall.java`, which provides type-safe interfaces for `Ray.call` - * and `Ray.createActor`. + * A util class that generates `RayCall.java` and `ActorCall.java`, which provide type-safe + * interfaces for `Ray.call`, `Ray.createActor` and `actor.call`. */ public class RayCallGenerator extends BaseGenerator { /** * @return Whole file content of `RayCall.java`. */ - private String build() { + private String generateRayCallDotJava() { sb = new StringBuilder(); - newLine("// generated automatically, do not modify."); + newLine("// Generated by `RayCallGenerator.java`. DO NOT EDIT."); newLine(""); newLine("package org.ray.api;"); newLine(""); @@ -48,13 +48,6 @@ public class RayCallGenerator extends BaseGenerator { buildCalls(i, false, false, false, true); } - newLine(1, "// ==========================================="); - newLine(1, "// Methods for remote actor method invocation."); - newLine(1, "// ==========================================="); - for (int i = 0; i <= MAX_PARAMETERS - 1; i++) { - buildCalls(i, true, false, true, false); - buildCalls(i, true, false, false, false); - } newLine(1, "// ==========================="); newLine(1, "// Methods for actor creation."); newLine(1, "// ==========================="); @@ -70,6 +63,7 @@ public class RayCallGenerator extends BaseGenerator { buildPyCalls(i, false, false, false); buildPyCalls(i, false, false, true); } + // TODO(hchen): move Python actor call API to `RayPyActor` class. for (int i = 0; i <= MAX_PARAMETERS - 1; i++) { buildPyCalls(i, true, false, false); } @@ -82,30 +76,61 @@ public class RayCallGenerator extends BaseGenerator { } /** - * Build the `Ray.call` or `Ray.createActor` methods with the given number of parameters. + * @return Whole file content of `ActorCall.java`. + */ + private String generateActorCallDotJava() { + sb = new StringBuilder(); + + newLine("// Generated by `RayCallGenerator.java`. DO NOT EDIT."); + newLine(""); + newLine("package org.ray.api;"); + newLine(""); + for (int i = 1; i <= MAX_PARAMETERS; i++) { + newLine("import org.ray.api.function.RayFunc" + i + ";"); + } + for (int i = 1; i <= MAX_PARAMETERS; i++) { + newLine("import org.ray.api.function.RayFuncVoid" + i + ";"); + } + newLine(""); + newLine("/**"); + newLine(" * This class provides type-safe interfaces for remote actor calls."); + newLine(" **/"); + newLine("@SuppressWarnings({\"rawtypes\", \"unchecked\"})"); + newLine("interface ActorCall {"); + newLine(""); + for (int i = 0; i <= MAX_PARAMETERS - 1; i++) { + buildCalls(i, true, false, true, false); + buildCalls(i, true, false, false, false); + } + + newLine("}"); + return sb.toString(); + } + + /** + * Build `Ray.call`, `Ray.createActor` and `actor.call` methods with + * the given number of parameters. * * @param numParameters the number of parameters - * @param forActor build actor api when true, otherwise build task api. - * @param hasReturn if true, build api for functions with return. - * @param forActorCreation build `Ray.createActor` when true, otherwise build `Ray.call`. + * @param forActor Build `actor.call` when true, otherwise build `Ray.call`. + * @param hasReturn if true, Build api for functions with return. + * @param forActorCreation Build `Ray.createActor` when true, otherwise build `Ray.call`. */ private void buildCalls(int numParameters, boolean forActor, boolean forActorCreation, boolean hasReturn, boolean hasOptionsParam) { // Template of the generated function: - // public static [genericTypes] [returnType] [callFunc]([argsDeclaration]) { + // [modifiers] [genericTypes] [returnType] [callFunc]([argsDeclaration]) { // Objects[] args = new Object[]{[args]}; - // return Ray.internal().[callFunc](f[, actor], args[, options]); + // return Ray.internal().[callFunc](f[, getThis()], args[, options]); // } + String modifiers = forActor ? "default" : "public static"; + // 1) Construct the `genericTypes` part, e.g. ``. String genericTypes = ""; for (int i = 0; i < numParameters; i++) { genericTypes += "T" + i + ", "; } - if (forActor) { - // Actor generic type. - genericTypes = "A, " + genericTypes; - } // Return generic type. if (forActorCreation) { genericTypes += "A, "; @@ -129,15 +154,21 @@ public class RayCallGenerator extends BaseGenerator { } // 3) Construct the `argsDeclaration` part. + String rayFuncGenericTypes = genericTypes; + if (forActor) { + if (rayFuncGenericTypes.isEmpty()) { + rayFuncGenericTypes = ""; + } else { + rayFuncGenericTypes = rayFuncGenericTypes.replace("<", " { diff --git a/java/test/src/main/java/org/ray/api/TestUtils.java b/java/test/src/main/java/org/ray/api/TestUtils.java index f3bcd38aa..d1cb8d95b 100644 --- a/java/test/src/main/java/org/ray/api/TestUtils.java +++ b/java/test/src/main/java/org/ray/api/TestUtils.java @@ -3,7 +3,6 @@ package org.ray.api; import com.google.common.base.Preconditions; import java.io.Serializable; import java.util.function.Supplier; -import org.ray.api.annotation.RayRemote; import org.ray.api.options.ActorCreationOptions; import org.ray.api.runtime.RayRuntime; import org.ray.runtime.AbstractRayRuntime; @@ -79,7 +78,6 @@ public class TestUtils { return false; } - @RayRemote private static String hi() { return "hi"; } diff --git a/java/test/src/main/java/org/ray/api/benchmark/ActorPressTest.java b/java/test/src/main/java/org/ray/api/benchmark/ActorPressTest.java index 5e0c28c3c..07406ac5e 100644 --- a/java/test/src/main/java/org/ray/api/benchmark/ActorPressTest.java +++ b/java/test/src/main/java/org/ray/api/benchmark/ActorPressTest.java @@ -3,7 +3,6 @@ package org.ray.api.benchmark; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.annotations.Test; public class ActorPressTest extends RayBenchmarkTest { @@ -45,7 +44,7 @@ public class ActorPressTest extends RayBenchmarkTest { @Override public RayObject> rayCall(RayActor rayActor) { - return Ray.call(Adder::add, (RayActor) rayActor, 10); + return ((RayActor) rayActor).call(Adder::add, 10); } @Override @@ -53,7 +52,6 @@ public class ActorPressTest extends RayBenchmarkTest { return true; } - @RayRemote public static class Adder { private Integer sum = 0; diff --git a/java/test/src/main/java/org/ray/api/benchmark/MaxPressureTest.java b/java/test/src/main/java/org/ray/api/benchmark/MaxPressureTest.java index 3db8737bc..086ace87d 100644 --- a/java/test/src/main/java/org/ray/api/benchmark/MaxPressureTest.java +++ b/java/test/src/main/java/org/ray/api/benchmark/MaxPressureTest.java @@ -3,7 +3,6 @@ package org.ray.api.benchmark; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.annotations.Test; public class MaxPressureTest extends RayBenchmarkTest { @@ -12,7 +11,6 @@ public class MaxPressureTest extends RayBenchmarkTest { public static final int totalNum = 10; private static final long serialVersionUID = -1684518885171395952L; - @RayRemote public static RemoteResult currentTime() { RemoteResult remoteResult = new RemoteResult<>(); remoteResult.setFinishTime(System.nanoTime()); diff --git a/java/test/src/main/java/org/ray/api/benchmark/RateLimiterPressureTest.java b/java/test/src/main/java/org/ray/api/benchmark/RateLimiterPressureTest.java index d379f6575..c860644ac 100644 --- a/java/test/src/main/java/org/ray/api/benchmark/RateLimiterPressureTest.java +++ b/java/test/src/main/java/org/ray/api/benchmark/RateLimiterPressureTest.java @@ -3,7 +3,6 @@ package org.ray.api.benchmark; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.annotations.Test; public class RateLimiterPressureTest extends RayBenchmarkTest { @@ -13,7 +12,6 @@ public class RateLimiterPressureTest extends RayBenchmarkTest { public static final int duration = 10; private static final long serialVersionUID = 6616958120966144235L; - @RayRemote public static RemoteResult currentTime() { RemoteResult remoteResult = new RemoteResult<>(); remoteResult.setFinishTime(System.nanoTime()); diff --git a/java/test/src/main/java/org/ray/api/benchmark/RayBenchmarkTest.java b/java/test/src/main/java/org/ray/api/benchmark/RayBenchmarkTest.java index 7965d0dc3..d14219d09 100644 --- a/java/test/src/main/java/org/ray/api/benchmark/RayBenchmarkTest.java +++ b/java/test/src/main/java/org/ray/api/benchmark/RayBenchmarkTest.java @@ -9,7 +9,6 @@ import java.util.List; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.ray.api.function.RayFunc1; import org.ray.api.test.BaseTest; import org.slf4j.Logger; @@ -23,7 +22,6 @@ public abstract class RayBenchmarkTest extends BaseTest implements Serializab public static final DecimalFormat df = new DecimalFormat("00.00"); private static final long serialVersionUID = 416045641835782523L; - @RayRemote private static List singleClient(PressureTestParameter pressureTestParameter) { try { diff --git a/java/test/src/main/java/org/ray/api/benchmark/SingleLatencyTest.java b/java/test/src/main/java/org/ray/api/benchmark/SingleLatencyTest.java index 3c4250614..cb392b1f9 100644 --- a/java/test/src/main/java/org/ray/api/benchmark/SingleLatencyTest.java +++ b/java/test/src/main/java/org/ray/api/benchmark/SingleLatencyTest.java @@ -3,7 +3,6 @@ package org.ray.api.benchmark; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.annotations.Test; public class SingleLatencyTest extends RayBenchmarkTest { @@ -11,7 +10,6 @@ public class SingleLatencyTest extends RayBenchmarkTest { public static final int totalNum = 10; private static final long serialVersionUID = 3559601273941694468L; - @RayRemote public static RemoteResult doFunc() { RemoteResult remoteResult = new RemoteResult<>(); remoteResult.setResult(1); diff --git a/java/test/src/main/java/org/ray/api/test/ActorConcurrentCallTest.java b/java/test/src/main/java/org/ray/api/test/ActorConcurrentCallTest.java index 6e0853890..76251e7a2 100644 --- a/java/test/src/main/java/org/ray/api/test/ActorConcurrentCallTest.java +++ b/java/test/src/main/java/org/ray/api/test/ActorConcurrentCallTest.java @@ -7,7 +7,6 @@ import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.options.ActorCreationOptions; import org.testng.Assert; import org.testng.annotations.Test; @@ -16,7 +15,6 @@ import org.testng.annotations.Test; @Test public class ActorConcurrentCallTest extends BaseTest { - @RayRemote public static class ConcurrentActor { private final CountDownLatch countDownLatch = new CountDownLatch(3); @@ -38,9 +36,9 @@ public class ActorConcurrentCallTest extends BaseTest { .setMaxConcurrency(3) .createActorCreationOptions(); RayActor actor = Ray.createActor(ConcurrentActor::new, op); - RayObject obj1 = Ray.call(ConcurrentActor::countDown, actor); - RayObject obj2 = Ray.call(ConcurrentActor::countDown, actor); - RayObject obj3 = Ray.call(ConcurrentActor::countDown, actor); + RayObject obj1 = actor.call(ConcurrentActor::countDown); + RayObject obj2 = actor.call(ConcurrentActor::countDown); + RayObject obj3 = actor.call(ConcurrentActor::countDown); List expectedResult = ImmutableList.of(1, 2, 3); Assert.assertEquals(obj1.get(), "ok"); diff --git a/java/test/src/main/java/org/ray/api/test/ActorReconstructionTest.java b/java/test/src/main/java/org/ray/api/test/ActorReconstructionTest.java index 2fed0a1ab..e645cd1bd 100644 --- a/java/test/src/main/java/org/ray/api/test/ActorReconstructionTest.java +++ b/java/test/src/main/java/org/ray/api/test/ActorReconstructionTest.java @@ -9,7 +9,6 @@ import org.ray.api.Checkpointable; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.exception.RayActorException; import org.ray.api.id.ActorId; import org.ray.api.id.UniqueId; @@ -20,7 +19,6 @@ import org.testng.annotations.Test; @Test public class ActorReconstructionTest extends BaseTest { - @RayRemote() public static class Counter { protected int value = 0; @@ -52,31 +50,31 @@ public class ActorReconstructionTest extends BaseTest { RayActor actor = Ray.createActor(Counter::new, options); // Call increase 3 times. for (int i = 0; i < 3; i++) { - Ray.call(Counter::increase, actor).get(); + actor.call(Counter::increase).get(); } - Assert.assertFalse(Ray.call(Counter::wasCurrentActorReconstructed, actor).get()); + Assert.assertFalse(actor.call(Counter::wasCurrentActorReconstructed).get()); // Kill the actor process. - int pid = Ray.call(Counter::getPid, actor).get(); + int pid = actor.call(Counter::getPid).get(); Runtime.getRuntime().exec("kill -9 " + pid); // Wait for the actor to be killed. TimeUnit.SECONDS.sleep(1); // Try calling increase on this actor again and check the value is now 4. - int value = Ray.call(Counter::increase, actor).get(); + int value = actor.call(Counter::increase).get(); Assert.assertEquals(value, options.useDirectCall ? 1 : 4); - Assert.assertTrue(Ray.call(Counter::wasCurrentActorReconstructed, actor).get()); + Assert.assertTrue(actor.call(Counter::wasCurrentActorReconstructed).get()); // Kill the actor process again. - pid = Ray.call(Counter::getPid, actor).get(); + pid = actor.call(Counter::getPid).get(); Runtime.getRuntime().exec("kill -9 " + pid); TimeUnit.SECONDS.sleep(1); // Try calling increase on this actor again and this should fail. try { - Ray.call(Counter::increase, actor).get(); + actor.call(Counter::increase).get(); Assert.fail("The above task didn't fail."); } catch (RayActorException e) { // We should receive a RayActorException because the actor is dead. @@ -132,20 +130,20 @@ public class ActorReconstructionTest extends BaseTest { RayActor actor = Ray.createActor(CheckpointableCounter::new, options); // Call increase 3 times. for (int i = 0; i < 3; i++) { - Ray.call(CheckpointableCounter::increase, actor).get(); + actor.call(CheckpointableCounter::increase).get(); } // Assert that the actor wasn't resumed from a checkpoint. - Assert.assertFalse(Ray.call(CheckpointableCounter::wasResumedFromCheckpoint, actor).get()); - int pid = Ray.call(CheckpointableCounter::getPid, actor).get(); + Assert.assertFalse(actor.call(CheckpointableCounter::wasResumedFromCheckpoint).get()); + int pid = actor.call(CheckpointableCounter::getPid).get(); Runtime.getRuntime().exec("kill -9 " + pid); // Wait for the actor to be killed. TimeUnit.SECONDS.sleep(1); // Try calling increase on this actor again and check the value is now 4. - int value = Ray.call(CheckpointableCounter::increase, actor).get(); + int value = actor.call(CheckpointableCounter::increase).get(); Assert.assertEquals(value, 4); // Assert that the actor was resumed from a checkpoint. - Assert.assertTrue(Ray.call(CheckpointableCounter::wasResumedFromCheckpoint, actor).get()); + Assert.assertTrue(actor.call(CheckpointableCounter::wasResumedFromCheckpoint).get()); } } diff --git a/java/test/src/main/java/org/ray/api/test/ActorTest.java b/java/test/src/main/java/org/ray/api/test/ActorTest.java index 3688a7119..f0af00401 100644 --- a/java/test/src/main/java/org/ray/api/test/ActorTest.java +++ b/java/test/src/main/java/org/ray/api/test/ActorTest.java @@ -10,8 +10,8 @@ import org.ray.api.RayObject; import org.ray.api.RayPyActor; import org.ray.api.TestUtils; import org.ray.api.TestUtils.LargeObject; -import org.ray.api.annotation.RayRemote; import org.ray.api.exception.UnreconstructableException; +import org.ray.api.id.ActorId; import org.ray.api.id.UniqueId; import org.testng.Assert; import org.testng.annotations.Test; @@ -19,7 +19,6 @@ import org.testng.annotations.Test; @Test public class ActorTest extends BaseTest { - @RayRemote public static class Counter { private int value; @@ -50,13 +49,13 @@ public class ActorTest extends BaseTest { public void testCreateAndCallActor() { // Test creating an actor from a constructor RayActor actor = Ray.createActor(Counter::new, 1); - Assert.assertNotEquals(actor.getId(), UniqueId.NIL); + Assert.assertNotEquals(actor.getId(), ActorId.NIL); // A java actor is not a python actor Assert.assertFalse(actor instanceof RayPyActor); // Test calling an actor - Assert.assertEquals(Integer.valueOf(1), Ray.call(Counter::getValue, actor).get()); - Ray.call(Counter::increase, actor, 1); - Assert.assertEquals(Integer.valueOf(3), Ray.call(Counter::increaseAndGet, actor, 1).get()); + Assert.assertEquals(Integer.valueOf(1), actor.call(Counter::getValue).get()); + actor.call(Counter::increase, 1); + Assert.assertEquals(Integer.valueOf(3), actor.call(Counter::increaseAndGet, 1).get()); } /** @@ -71,7 +70,7 @@ public class ActorTest extends BaseTest { */ public void testGetDirectObjectTwice() { RayActor actor = Ray.createActor(Counter::new, 1); - RayObject result = Ray.call(Counter::getValue, actor); + RayObject result = actor.call(Counter::getValue); Assert.assertEquals(result.get(), Integer.valueOf(1)); Assert.assertEquals(result.get(), Integer.valueOf(1)); // TODO(hchen): The following code will still fail, and can be fixed by using ref counting. @@ -82,10 +81,9 @@ public class ActorTest extends BaseTest { RayActor actor = Ray.createActor(Counter::new, 1); LargeObject largeObject = new LargeObject(); Assert.assertEquals(Integer.valueOf(largeObject.data.length + 1), - Ray.call(Counter::accessLargeObject, actor, largeObject).get()); + actor.call(Counter::accessLargeObject, largeObject).get()); } - @RayRemote static Counter factory(int initValue) { return new Counter(initValue); } @@ -95,24 +93,21 @@ public class ActorTest extends BaseTest { RayActor actor = Ray.createActor(ActorTest::factory, 1); Assert.assertNotEquals(actor.getId(), UniqueId.NIL); // Test calling an actor - Assert.assertEquals(Integer.valueOf(1), Ray.call(Counter::getValue, actor).get()); + Assert.assertEquals(Integer.valueOf(1), actor.call(Counter::getValue).get()); } - @RayRemote static int testActorAsFirstParameter(RayActor actor, int delta) { - RayObject res = Ray.call(Counter::increaseAndGet, actor, delta); + RayObject res = actor.call(Counter::increaseAndGet, delta); return res.get(); } - @RayRemote static int testActorAsSecondParameter(int delta, RayActor actor) { - RayObject res = Ray.call(Counter::increaseAndGet, actor, delta); + RayObject res = actor.call(Counter::increaseAndGet, delta); return res.get(); } - @RayRemote static int testActorAsFieldOfParameter(List> actor, int delta) { - RayObject res = Ray.call(Counter::increaseAndGet, actor.get(0), delta); + RayObject res = actor.get(0).call(Counter::increaseAndGet, delta); return res.get(); } @@ -134,7 +129,7 @@ public class ActorTest extends BaseTest { TestUtils.skipTestIfDirectActorCallEnabled(); RayActor counter = Ray.createActor(Counter::new, 100); // Call an actor method. - RayObject value = Ray.call(Counter::getValue, counter); + RayObject value = counter.call(Counter::getValue); Assert.assertEquals(100, value.get()); // Delete the object from the object store. Ray.internal().free(ImmutableList.of(value.getId()), false, false); diff --git a/java/test/src/main/java/org/ray/api/test/CrossLanguageInvocationTest.java b/java/test/src/main/java/org/ray/api/test/CrossLanguageInvocationTest.java index 5a765a15f..fbf3e7f52 100644 --- a/java/test/src/main/java/org/ray/api/test/CrossLanguageInvocationTest.java +++ b/java/test/src/main/java/org/ray/api/test/CrossLanguageInvocationTest.java @@ -12,7 +12,6 @@ import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.RayPyActor; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.runtime.actor.NativeRayActor; import org.ray.runtime.actor.NativeRayPyActor; import org.slf4j.Logger; @@ -117,7 +116,6 @@ public class CrossLanguageInvocationTest extends BaseMultiLanguageTest { return (byte[])res.get(); } - @RayRemote // Python can create java actors without @RayRemote public static class TestActor { public TestActor(byte[] v) { value = v; diff --git a/java/test/src/main/java/org/ray/api/test/DynamicResourceTest.java b/java/test/src/main/java/org/ray/api/test/DynamicResourceTest.java index 71766c6cf..4388dcf4e 100644 --- a/java/test/src/main/java/org/ray/api/test/DynamicResourceTest.java +++ b/java/test/src/main/java/org/ray/api/test/DynamicResourceTest.java @@ -7,7 +7,6 @@ import org.ray.api.Ray; import org.ray.api.RayObject; import org.ray.api.TestUtils; import org.ray.api.WaitResult; -import org.ray.api.annotation.RayRemote; import org.ray.api.options.CallOptions; import org.ray.api.runtimecontext.NodeInfo; import org.testng.Assert; @@ -15,7 +14,6 @@ import org.testng.annotations.Test; public class DynamicResourceTest extends BaseTest { - @RayRemote public static String sayHi() { return "hi"; } diff --git a/java/test/src/main/java/org/ray/api/test/FailureTest.java b/java/test/src/main/java/org/ray/api/test/FailureTest.java index dcba4656f..e3df394fb 100644 --- a/java/test/src/main/java/org/ray/api/test/FailureTest.java +++ b/java/test/src/main/java/org/ray/api/test/FailureTest.java @@ -95,14 +95,14 @@ public class FailureTest extends BaseTest { public void testActorCreationFailure() { TestUtils.skipTestUnderSingleProcess(); RayActor actor = Ray.createActor(BadActor::new, true); - assertTaskFailedWithRayTaskException(Ray.call(BadActor::badMethod, actor)); + assertTaskFailedWithRayTaskException(actor.call(BadActor::badMethod)); } @Test public void testActorTaskFailure() { TestUtils.skipTestUnderSingleProcess(); RayActor actor = Ray.createActor(BadActor::new, false); - assertTaskFailedWithRayTaskException(Ray.call(BadActor::badMethod, actor)); + assertTaskFailedWithRayTaskException(actor.call(BadActor::badMethod)); } @Test @@ -125,14 +125,14 @@ public class FailureTest extends BaseTest { TestUtils.skipTestIfDirectActorCallEnabled(); RayActor actor = Ray.createActor(BadActor::new, false); try { - Ray.call(BadActor::badMethod2, actor).get(); + actor.call(BadActor::badMethod2).get(); Assert.fail("This line shouldn't be reached."); } catch (RayActorException e) { // When the actor process dies while executing a task, we should receive an // RayActorException. } try { - Ray.call(BadActor::badMethod, actor).get(); + actor.call(BadActor::badMethod).get(); Assert.fail("This line shouldn't be reached."); } catch (RayActorException e) { // When a actor task is submitted to a dead actor, we should also receive an diff --git a/java/test/src/main/java/org/ray/api/test/HelloWorldTest.java b/java/test/src/main/java/org/ray/api/test/HelloWorldTest.java index 04883bdf8..f811de5ad 100644 --- a/java/test/src/main/java/org/ray/api/test/HelloWorldTest.java +++ b/java/test/src/main/java/org/ray/api/test/HelloWorldTest.java @@ -2,7 +2,6 @@ package org.ray.api.test; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.Assert; import org.testng.annotations.Test; @@ -11,17 +10,14 @@ import org.testng.annotations.Test; */ public class HelloWorldTest extends BaseTest { - @RayRemote private static String hello() { return "hello"; } - @RayRemote private static String world() { return "world!"; } - @RayRemote private static String merge(String hello, String world) { return hello + "," + world; } diff --git a/java/test/src/main/java/org/ray/api/test/KillActorTest.java b/java/test/src/main/java/org/ray/api/test/KillActorTest.java index 4f584f397..3203a7d59 100644 --- a/java/test/src/main/java/org/ray/api/test/KillActorTest.java +++ b/java/test/src/main/java/org/ray/api/test/KillActorTest.java @@ -5,7 +5,6 @@ import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.exception.RayActorException; import org.testng.Assert; import org.testng.annotations.Test; @@ -13,7 +12,6 @@ import org.testng.annotations.Test; @Test public class KillActorTest extends BaseTest { - @RayRemote public static class HangActor { public boolean alive() { @@ -31,8 +29,8 @@ public class KillActorTest extends BaseTest { TestUtils.skipTestUnderSingleProcess(); TestUtils.skipTestIfDirectActorCallDisabled(); RayActor actor = Ray.createActor(HangActor::new); - Assert.assertTrue(Ray.call(HangActor::alive, actor).get()); - RayObject result = Ray.call(HangActor::hang, actor); + Assert.assertTrue(actor.call(HangActor::alive).get()); + RayObject result = actor.call(HangActor::hang); Assert.assertEquals(0, Ray.wait(ImmutableList.of(result), 1, 500).getReady().size()); Ray.killActor(actor); Assert.expectThrows(RayActorException.class, result::get); diff --git a/java/test/src/main/java/org/ray/api/test/MultiLanguageClusterTest.java b/java/test/src/main/java/org/ray/api/test/MultiLanguageClusterTest.java index 043eb0aae..91741f83c 100644 --- a/java/test/src/main/java/org/ray/api/test/MultiLanguageClusterTest.java +++ b/java/test/src/main/java/org/ray/api/test/MultiLanguageClusterTest.java @@ -2,13 +2,11 @@ package org.ray.api.test; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.Assert; import org.testng.annotations.Test; public class MultiLanguageClusterTest extends BaseMultiLanguageTest { - @RayRemote public static String echo(String word) { return word; } diff --git a/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java b/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java index b50bf5306..e493959b6 100644 --- a/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java +++ b/java/test/src/main/java/org/ray/api/test/MultiThreadingTest.java @@ -14,7 +14,6 @@ import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; import org.ray.api.WaitResult; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.ActorId; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,21 +28,17 @@ public class MultiThreadingTest extends BaseTest { private static final int LOOP_COUNTER = 100; private static final int NUM_THREADS = 20; - @RayRemote static Integer echo(int num) { return num; } - @RayRemote public static class Echo { - @RayRemote public Integer echo(int num) { return num; } } - @RayRemote public static class ActorIdTester { private final ActorId actorId; @@ -53,7 +48,6 @@ public class MultiThreadingTest extends BaseTest { Assert.assertNotEquals(actorId, ActorId.NIL); } - @RayRemote public ActorId getCurrentActorId() throws Exception { final Object[] result = new Object[1]; Thread thread = new Thread(Ray.wrapRunnable(() -> { @@ -86,7 +80,7 @@ public class MultiThreadingTest extends BaseTest { RayActor echoActor = Ray.createActor(Echo::new); runTestCaseInMultipleThreads(() -> { int arg = random.nextInt(); - RayObject obj = Ray.call(Echo::echo, echoActor, arg); + RayObject obj = echoActor.call(Echo::echo, arg); Assert.assertEquals(arg, (int) obj.get()); }, LOOP_COUNTER); @@ -101,7 +95,7 @@ public class MultiThreadingTest extends BaseTest { } catch (InterruptedException e) { LOGGER.warn("Got exception while sleeping.", e); } - RayObject obj = Ray.call(Echo::echo, echoActor1, arg); + RayObject obj = echoActor1.call(Echo::echo, arg); Assert.assertEquals(arg, (int) obj.get()); }, 1); @@ -137,7 +131,7 @@ public class MultiThreadingTest extends BaseTest { public void testGetCurrentActorId() { TestUtils.skipTestUnderSingleProcess(); RayActor actorIdTester = Ray.createActor(ActorIdTester::new); - ActorId actorId = Ray.call(ActorIdTester::getCurrentActorId, actorIdTester).get(); + ActorId actorId = actorIdTester.call(ActorIdTester::getCurrentActorId).get(); Assert.assertEquals(actorId, actorIdTester.getId()); } diff --git a/java/test/src/main/java/org/ray/api/test/PlasmaFreeTest.java b/java/test/src/main/java/org/ray/api/test/PlasmaFreeTest.java index e39fbcf6a..9e2bf3dde 100644 --- a/java/test/src/main/java/org/ray/api/test/PlasmaFreeTest.java +++ b/java/test/src/main/java/org/ray/api/test/PlasmaFreeTest.java @@ -5,14 +5,12 @@ import java.util.Arrays; import org.ray.api.Ray; import org.ray.api.RayObject; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.TaskId; import org.testng.Assert; import org.testng.annotations.Test; public class PlasmaFreeTest extends BaseTest { - @RayRemote private static String hello() { return "hello"; } diff --git a/java/test/src/main/java/org/ray/api/test/RayCallTest.java b/java/test/src/main/java/org/ray/api/test/RayCallTest.java index 65bc877e8..fb1e94ef2 100644 --- a/java/test/src/main/java/org/ray/api/test/RayCallTest.java +++ b/java/test/src/main/java/org/ray/api/test/RayCallTest.java @@ -7,7 +7,6 @@ import java.util.Map; import org.ray.api.Ray; import org.ray.api.TestUtils; import org.ray.api.TestUtils.LargeObject; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.ObjectId; import org.testng.Assert; import org.testng.annotations.Test; @@ -17,62 +16,50 @@ import org.testng.annotations.Test; */ public class RayCallTest extends BaseTest { - @RayRemote private static int testInt(int val) { return val; } - @RayRemote private static byte testByte(byte val) { return val; } - @RayRemote private static short testShort(short val) { return val; } - @RayRemote private static long testLong(long val) { return val; } - @RayRemote private static double testDouble(double val) { return val; } - @RayRemote private static float testFloat(float val) { return val; } - @RayRemote private static boolean testBool(boolean val) { return val; } - @RayRemote private static String testString(String val) { return val; } - @RayRemote private static List testList(List val) { return val; } - @RayRemote private static Map testMap(Map val) { return val; } - @RayRemote private static LargeObject testLargeObject(LargeObject largeObject) { return largeObject; } - @RayRemote private static void testNoReturn(ObjectId objectId) { // Put an object in object store to inform driver that this function is executing. TestUtils.getRuntime().getObjectStore().put(1, objectId); @@ -103,37 +90,30 @@ public class RayCallTest extends BaseTest { Assert.assertEquals(((int) Ray.get(randomObjectId)), 1); } - @RayRemote private static int testNoParam() { return 0; } - @RayRemote private static int testOneParam(int a) { return a; } - @RayRemote private static int testTwoParams(int a, int b) { return a + b; } - @RayRemote private static int testThreeParams(int a, int b, int c) { return a + b + c; } - @RayRemote private static int testFourParams(int a, int b, int c, int d) { return a + b + c + d; } - @RayRemote private static int testFiveParams(int a, int b, int c, int d, int e) { return a + b + c + d + e; } - @RayRemote private static int testSixParams(int a, int b, int c, int d, int e, int f) { return a + b + c + d + e + f; } diff --git a/java/test/src/main/java/org/ray/api/test/RedisPasswordTest.java b/java/test/src/main/java/org/ray/api/test/RedisPasswordTest.java index 114ef7498..ced19d4a0 100644 --- a/java/test/src/main/java/org/ray/api/test/RedisPasswordTest.java +++ b/java/test/src/main/java/org/ray/api/test/RedisPasswordTest.java @@ -2,7 +2,6 @@ package org.ray.api.test; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; import org.testng.Assert; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; @@ -22,7 +21,6 @@ public class RedisPasswordTest extends BaseTest { System.clearProperty("ray.redis.password"); } - @RayRemote public static String echo(String str) { return str; } diff --git a/java/test/src/main/java/org/ray/api/test/ResourcesManagementTest.java b/java/test/src/main/java/org/ray/api/test/ResourcesManagementTest.java index afae55be9..e523389ce 100644 --- a/java/test/src/main/java/org/ray/api/test/ResourcesManagementTest.java +++ b/java/test/src/main/java/org/ray/api/test/ResourcesManagementTest.java @@ -7,7 +7,6 @@ import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; import org.ray.api.WaitResult; -import org.ray.api.annotation.RayRemote; import org.ray.api.options.ActorCreationOptions; import org.ray.api.options.CallOptions; import org.testng.Assert; @@ -30,12 +29,10 @@ public class ResourcesManagementTest extends BaseTest { System.clearProperty("ray.resources"); } - @RayRemote public static Integer echo(Integer number) { return number; } - @RayRemote public static class Echo { public Integer echo(Integer number) { @@ -84,7 +81,7 @@ public class ResourcesManagementTest extends BaseTest { // This is a case that can satisfy required resources. // The static resources for test are "CPU:4,RES-A:4". RayActor echo1 = Ray.createActor(Echo::new, actorCreationOptions1); - final RayObject result1 = Ray.call(Echo::echo, echo1, 100); + final RayObject result1 = echo1.call(Echo::echo, 100); Assert.assertEquals(100, (int) result1.get()); // This is a case that can't satisfy required resources. @@ -94,7 +91,7 @@ public class ResourcesManagementTest extends BaseTest { RayActor echo2 = Ray.createActor(Echo::new, actorCreationOptions2); - final RayObject result2 = Ray.call(Echo::echo, echo2, 100); + final RayObject result2 = echo2.call(Echo::echo, 100); WaitResult waitResult = Ray.wait(ImmutableList.of(result2), 1, 1000); Assert.assertEquals(0, waitResult.getReady().size()); diff --git a/java/test/src/main/java/org/ray/api/test/RuntimeContextTest.java b/java/test/src/main/java/org/ray/api/test/RuntimeContextTest.java index 6db709411..bce024525 100644 --- a/java/test/src/main/java/org/ray/api/test/RuntimeContextTest.java +++ b/java/test/src/main/java/org/ray/api/test/RuntimeContextTest.java @@ -4,7 +4,6 @@ import java.nio.ByteBuffer; import java.util.Arrays; import org.ray.api.Ray; import org.ray.api.RayActor; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.ActorId; import org.ray.api.id.JobId; import org.testng.Assert; @@ -47,7 +46,6 @@ public class RuntimeContextTest extends BaseTest { Ray.getRuntimeContext().getObjectStoreSocketName()); } - @RayRemote public static class RuntimeContextTester { public String testRuntimeContext(ActorId actorId) { @@ -64,7 +62,7 @@ public class RuntimeContextTest extends BaseTest { public void testRuntimeContextInActor() { RayActor actor = Ray.createActor(RuntimeContextTester::new); Assert.assertEquals("ok", - Ray.call(RuntimeContextTester::testRuntimeContext, actor, actor.getId()).get()); + actor.call(RuntimeContextTester::testRuntimeContext, actor.getId()).get()); } } diff --git a/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java b/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java index 5355b3311..fa3351818 100644 --- a/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java +++ b/java/test/src/main/java/org/ray/api/test/SingleProcessModeTest.java @@ -8,7 +8,6 @@ import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.ActorId; import org.testng.Assert; import org.testng.annotations.Test; @@ -19,7 +18,6 @@ public class SingleProcessModeTest extends BaseTest { private static final int TIMES_TO_CALL_PER_ACTOR = 10; - @RayRemote static class MyActor { public MyActor() { } @@ -38,7 +36,7 @@ public class SingleProcessModeTest extends BaseTest { for (int i = 0; i < NUM_ACTOR_INSTANCE; ++i) { RayActor actor = Ray.createActor(MyActor::new); actors.add(actor); - actorThreadIds.put(actor.getId(), Ray.call(MyActor::getThreadId, actor).get()); + actorThreadIds.put(actor.getId(), actor.call(MyActor::getThreadId).get()); } Map>> allResults = new HashMap<>(); @@ -46,7 +44,7 @@ public class SingleProcessModeTest extends BaseTest { final RayActor actor = actors.get(i); List> thisActorResult = new ArrayList<>(); for (int j = 0; j < TIMES_TO_CALL_PER_ACTOR; ++j) { - thisActorResult.add(Ray.call(MyActor::getThreadId, actor)); + thisActorResult.add(actor.call(MyActor::getThreadId)); } allResults.put(actor.getId(), thisActorResult); } diff --git a/java/test/src/main/java/org/ray/api/test/StressTest.java b/java/test/src/main/java/org/ray/api/test/StressTest.java index e2d150bc7..45782cd8d 100644 --- a/java/test/src/main/java/org/ray/api/test/StressTest.java +++ b/java/test/src/main/java/org/ray/api/test/StressTest.java @@ -64,7 +64,7 @@ public class StressTest extends BaseTest { public int ping(int n) { List objectIds = new ArrayList<>(); for (int i = 0; i < n; i++) { - objectIds.add(Ray.call(Actor::ping, actor).getId()); + objectIds.add(actor.call(Actor::ping).getId()); } int sum = 0; for (Integer result : Ray.get(objectIds)) { @@ -81,7 +81,7 @@ public class StressTest extends BaseTest { List objectIds = new ArrayList<>(); for (int i = 0; i < 10; i++) { RayActor worker = Ray.createActor(Worker::new, actor); - objectIds.add(Ray.call(Worker::ping, worker, 100).getId()); + objectIds.add(worker.call(Worker::ping, 100).getId()); } for (Integer result : Ray.get(objectIds)) { diff --git a/java/test/src/main/java/org/ray/api/test/WaitTest.java b/java/test/src/main/java/org/ray/api/test/WaitTest.java index bccc50a50..49cb2c926 100644 --- a/java/test/src/main/java/org/ray/api/test/WaitTest.java +++ b/java/test/src/main/java/org/ray/api/test/WaitTest.java @@ -7,18 +7,15 @@ import org.ray.api.Ray; import org.ray.api.RayObject; import org.ray.api.TestUtils; import org.ray.api.WaitResult; -import org.ray.api.annotation.RayRemote; import org.testng.Assert; import org.testng.annotations.Test; public class WaitTest extends BaseTest { - @RayRemote private static String hi() { return "hi"; } - @RayRemote private static String delayedHi() { try { Thread.sleep(100 * 1000); @@ -50,7 +47,6 @@ public class WaitTest extends BaseTest { testWait(); } - @RayRemote public static Object waitInWorker() { testWait(); return null; diff --git a/java/test/src/main/java/org/ray/api/test/WorkerJvmOptionsTest.java b/java/test/src/main/java/org/ray/api/test/WorkerJvmOptionsTest.java index 4a39ae2e9..f93d61fe7 100644 --- a/java/test/src/main/java/org/ray/api/test/WorkerJvmOptionsTest.java +++ b/java/test/src/main/java/org/ray/api/test/WorkerJvmOptionsTest.java @@ -4,14 +4,12 @@ import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; import org.ray.api.TestUtils; -import org.ray.api.annotation.RayRemote; import org.ray.api.options.ActorCreationOptions; import org.testng.Assert; import org.testng.annotations.Test; public class WorkerJvmOptionsTest extends BaseTest { - @RayRemote public static class Echo { String getOptions() { return System.getProperty("test.suffix"); @@ -27,7 +25,7 @@ public class WorkerJvmOptionsTest extends BaseTest { .setJvmOptions(" -Dtest.suffix=suffix -Dtest.suffix1=suffix1 ") .createActorCreationOptions(); RayActor actor = Ray.createActor(Echo::new, options); - RayObject obj = Ray.call(Echo::getOptions, actor); + RayObject obj = actor.call(Echo::getOptions); Assert.assertEquals(obj.get(), "suffix"); } } diff --git a/java/tutorial/src/main/java/org/ray/exercise/Exercise01.java b/java/tutorial/src/main/java/org/ray/exercise/Exercise01.java index 1a8ad516e..2a0ccee47 100644 --- a/java/tutorial/src/main/java/org/ray/exercise/Exercise01.java +++ b/java/tutorial/src/main/java/org/ray/exercise/Exercise01.java @@ -3,7 +3,6 @@ package org.ray.exercise; import java.io.Serializable; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; /** * Define a remote function, and execute multiple remote functions in parallel. @@ -13,15 +12,12 @@ public class Exercise01 implements Serializable { /** * A plain remote function. */ - // `@RayRemote` annotation converts a normal function to a remote function. - @RayRemote public static String sayHello() { String ret = "hello"; System.out.println(ret); return ret; } - @RayRemote public static String sayWorld() { String ret = "world!"; System.out.println(ret); diff --git a/java/tutorial/src/main/java/org/ray/exercise/Exercise02.java b/java/tutorial/src/main/java/org/ray/exercise/Exercise02.java index b21be5957..ea116b2f7 100644 --- a/java/tutorial/src/main/java/org/ray/exercise/Exercise02.java +++ b/java/tutorial/src/main/java/org/ray/exercise/Exercise02.java @@ -2,21 +2,18 @@ package org.ray.exercise; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; /** * Execute remote functions in parallel with some dependencies. */ public class Exercise02 { - @RayRemote public static String sayHello() { String ret = "hello"; System.out.println(ret); return ret; } - @RayRemote public static String sayWorld() { String ret = "world!"; System.out.println(ret); @@ -26,7 +23,6 @@ public class Exercise02 { /** * A remote function with dependency. */ - @RayRemote public static String merge(String hello, String world) { return hello + "," + world; } diff --git a/java/tutorial/src/main/java/org/ray/exercise/Exercise03.java b/java/tutorial/src/main/java/org/ray/exercise/Exercise03.java index 7e751e7fa..a095dc56d 100644 --- a/java/tutorial/src/main/java/org/ray/exercise/Exercise03.java +++ b/java/tutorial/src/main/java/org/ray/exercise/Exercise03.java @@ -2,7 +2,6 @@ package org.ray.exercise; import org.ray.api.Ray; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; /** * Call a remote function from within another remote function. @@ -12,7 +11,6 @@ public class Exercise03 { /** * A remote function which will call another remote function. */ - @RayRemote public static String sayHelloWithWorld() { String ret = "hello"; System.out.println(ret); @@ -23,7 +21,6 @@ public class Exercise03 { /** * A remote function which will be called by another remote function. */ - @RayRemote public static String sayWorld() { String ret = "world!"; System.out.println(ret); diff --git a/java/tutorial/src/main/java/org/ray/exercise/Exercise04.java b/java/tutorial/src/main/java/org/ray/exercise/Exercise04.java index 7a81a5dc1..768542b01 100644 --- a/java/tutorial/src/main/java/org/ray/exercise/Exercise04.java +++ b/java/tutorial/src/main/java/org/ray/exercise/Exercise04.java @@ -5,20 +5,17 @@ import java.util.List; import org.ray.api.Ray; import org.ray.api.RayObject; import org.ray.api.WaitResult; -import org.ray.api.annotation.RayRemote; /** * Use Ray.wait to ignore stragglers */ public class Exercise04 { - @RayRemote public static String f1() { System.out.println("Executing f1"); return "f1"; } - @RayRemote public static String f2() { System.out.println("Executing f2"); return "f2"; @@ -27,7 +24,6 @@ public class Exercise04 { /** * A slow remote function. */ - @RayRemote public static String f3() { System.out.println("Executing f3"); try { diff --git a/java/tutorial/src/main/java/org/ray/exercise/Exercise05.java b/java/tutorial/src/main/java/org/ray/exercise/Exercise05.java index 1ac7d01f9..930f63914 100644 --- a/java/tutorial/src/main/java/org/ray/exercise/Exercise05.java +++ b/java/tutorial/src/main/java/org/ray/exercise/Exercise05.java @@ -3,7 +3,6 @@ package org.ray.exercise; import org.ray.api.Ray; import org.ray.api.RayActor; import org.ray.api.RayObject; -import org.ray.api.annotation.RayRemote; /** * Show usage of actors. @@ -16,9 +15,9 @@ public class Exercise05 { // `Ray.createActor` creates an actor instance. RayActor adder = Ray.createActor(Adder::new, 0); // Use `Ray.call(actor, parameters)` to call an actor method. - RayObject result1 = Ray.call(Adder::add, adder, 1); + RayObject result1 = adder.call(Adder::add, 1); System.out.println(result1.get()); - RayObject result2 = Ray.call(Adder::add, adder, 10); + RayObject result2 = adder.call(Adder::add, 10); System.out.println(result2.get()); } catch (Throwable t) { t.printStackTrace(); @@ -30,8 +29,6 @@ public class Exercise05 { /** * An example actor. */ - // `@RayRemote` annotation also converts a normal class to an actor. - @RayRemote public static class Adder { public Adder(int initValue) { diff --git a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/python/PythonGateway.java b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/python/PythonGateway.java index 42872a93c..600733811 100644 --- a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/python/PythonGateway.java +++ b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/python/PythonGateway.java @@ -6,7 +6,6 @@ import java.util.List; import java.util.Map; import java.util.stream.Collectors; import org.msgpack.core.Preconditions; -import org.ray.api.annotation.RayRemote; import org.ray.streaming.api.context.StreamingContext; import org.ray.streaming.python.PythonFunction; import org.ray.streaming.python.PythonPartition; @@ -24,7 +23,6 @@ import org.slf4j.LoggerFactory; * `streaming/python/runtime/gateway_client.py` */ @SuppressWarnings("unchecked") -@RayRemote public class PythonGateway { private static final Logger LOG = LoggerFactory.getLogger(PythonGateway.class); private static final String REFERENCE_ID_PREFIX = "__gateway_reference_id__"; diff --git a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/schedule/JobSchedulerImpl.java b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/schedule/JobSchedulerImpl.java index 45191befe..df239c1dd 100644 --- a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/schedule/JobSchedulerImpl.java +++ b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/schedule/JobSchedulerImpl.java @@ -61,7 +61,7 @@ public class JobSchedulerImpl implements JobScheduler { switch (executionNode.getLanguage()) { case JAVA: RayActor jobWorker = (RayActor) worker; - waits.add(Ray.call(JobWorker::init, jobWorker, + waits.add(jobWorker.call(JobWorker::init, new WorkerContext(taskId, executionGraph, jobConfig))); break; case PYTHON: diff --git a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/worker/JobWorker.java b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/worker/JobWorker.java index 8f36ebd97..73c8f8a59 100644 --- a/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/worker/JobWorker.java +++ b/streaming/java/streaming-runtime/src/main/java/org/ray/streaming/runtime/worker/JobWorker.java @@ -4,7 +4,6 @@ import java.io.Serializable; import java.util.Map; import org.ray.api.Ray; -import org.ray.api.annotation.RayRemote; import org.ray.runtime.RayMultiWorkerNativeRuntime; import org.ray.runtime.functionmanager.JavaFunctionDescriptor; import org.ray.streaming.runtime.core.graph.ExecutionGraph; @@ -28,7 +27,6 @@ import org.slf4j.LoggerFactory; /** * The stream job worker, it is a ray actor. */ -@RayRemote public class JobWorker implements Serializable { private static final Logger LOGGER = LoggerFactory.getLogger(JobWorker.class); diff --git a/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/StreamingQueueTest.java b/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/StreamingQueueTest.java index e65f9d8e2..dcc5943d5 100644 --- a/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/StreamingQueueTest.java +++ b/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/StreamingQueueTest.java @@ -101,11 +101,11 @@ public class StreamingQueueTest extends BaseUnitTest implements Serializable { builder.createActorCreationOptions()); LOGGER.info("call getName on writerActor: {}", - Ray.call(WriterWorker::getName, writerActor).get()); + writerActor.call(WriterWorker::getName).get()); LOGGER.info("call getName on readerActor: {}", - Ray.call(ReaderWorker::getName, readerActor).get()); + readerActor.call(ReaderWorker::getName).get()); - // LOGGER.info(Ray.call(WriterWorker::testCallReader, writerActor, readerActor).get()); + // LOGGER.info(writerActor.call(WriterWorker::testCallReader, readerActor).get()); List outputQueueList = new ArrayList<>(); List inputQueueList = new ArrayList<>(); int queueNum = 2; @@ -118,17 +118,17 @@ public class StreamingQueueTest extends BaseUnitTest implements Serializable { } final int msgCount = 100; - Ray.call(ReaderWorker::init, readerActor, inputQueueList, writerActor, msgCount); + readerActor.call(ReaderWorker::init, inputQueueList, writerActor, msgCount); try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } - Ray.call(WriterWorker::init, writerActor, outputQueueList, readerActor, msgCount); + writerActor.call(WriterWorker::init, outputQueueList, readerActor, msgCount); long time = 0; while (time < 20000 && - Ray.call(ReaderWorker::getTotalMsg, readerActor).get() < msgCount * queueNum) { + readerActor.call(ReaderWorker::getTotalMsg).get() < msgCount * queueNum) { try { Thread.sleep(1000); time += 1000; @@ -138,7 +138,7 @@ public class StreamingQueueTest extends BaseUnitTest implements Serializable { } Assert.assertEquals( - Ray.call(ReaderWorker::getTotalMsg, readerActor).get().intValue(), + readerActor.call(ReaderWorker::getTotalMsg).get().intValue(), msgCount * queueNum); } diff --git a/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/Worker.java b/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/Worker.java index 2c105576d..16cb4cd52 100644 --- a/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/Worker.java +++ b/streaming/java/streaming-runtime/src/test/java/org/ray/streaming/runtime/streamingqueue/Worker.java @@ -9,7 +9,6 @@ import java.util.Map; import java.util.Random; import org.ray.api.Ray; import org.ray.api.RayActor; -import org.ray.api.annotation.RayRemote; import org.ray.api.id.ActorId; import org.ray.runtime.RayMultiWorkerNativeRuntime; import org.ray.runtime.actor.NativeRayActor; @@ -59,7 +58,6 @@ public class Worker { } } -@RayRemote class ReaderWorker extends Worker { private static final Logger LOGGER = LoggerFactory.getLogger(ReaderWorker.class); @@ -68,7 +66,7 @@ class ReaderWorker extends Worker { private List inputActorIds = new ArrayList<>(); private DataReader dataReader = null; private long handler = 0; - private RayActor peerActor = null; + private RayActor peerActor = null; private int msgCount = 0; private int totalMsg = 0; @@ -90,7 +88,7 @@ class ReaderWorker extends Worker { return "testRayCall"; } - public boolean init(List inputQueueList, RayActor peer, int msgCount) { + public boolean init(List inputQueueList, RayActor peer, int msgCount) { this.inputQueueList = inputQueueList; this.peerActor = peer; @@ -176,7 +174,6 @@ class ReaderWorker extends Worker { } } -@RayRemote class WriterWorker extends Worker { private static final Logger LOGGER = LoggerFactory.getLogger(WriterWorker.class); @@ -184,7 +181,7 @@ class WriterWorker extends Worker { private List outputQueueList = null; private List outputActorIds = new ArrayList<>(); DataWriter dataWriter = null; - RayActor peerActor = null; + RayActor peerActor = null; int msgCount = 0; public WriterWorker(String name) { @@ -199,13 +196,13 @@ class WriterWorker extends Worker { return name; } - public String testCallReader(RayActor readerActor) { - String name = (String) Ray.call(ReaderWorker::getName, readerActor).get(); + public String testCallReader(RayActor readerActor) { + String name = readerActor.call(ReaderWorker::getName).get(); LOGGER.info("testCallReader: {}", name); return name; } - public boolean init(List outputQueueList, RayActor peer, int msgCount) { + public boolean init(List outputQueueList, RayActor peer, int msgCount) { this.outputQueueList = outputQueueList; this.peerActor = peer; @@ -221,7 +218,7 @@ class WriterWorker extends Worker { LOGGER.info("Peer isDirectActorCall: {}", ((NativeRayActor) peer).isDirectCallActor()); int count = 3; while (count-- != 0) { - Ray.call(ReaderWorker::testRayCall, peer).get(); + peer.call(ReaderWorker::testRayCall).get(); } try { @@ -277,4 +274,4 @@ class WriterWorker extends Worker { e.printStackTrace(); } } -} \ No newline at end of file +}