]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/function/FunctionImpl3.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / function / FunctionImpl3.java
diff --git a/bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/function/FunctionImpl3.java b/bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/function/FunctionImpl3.java
new file mode 100755 (executable)
index 0000000..05d84fb
--- /dev/null
@@ -0,0 +1,136 @@
+/**
+ * This code is generated in org.simantics.scl.runtime.generation.GenerateFunctions.
+ * Do not edit manually!
+ */\r
+package org.simantics.scl.runtime.function;\r
+\r
+import java.util.Arrays;\r
+\r
+@SuppressWarnings("all")\r
+public abstract class FunctionImpl3<P0,P1,P2,R> implements Function<P0,P1,P2,Object,Object,Object,Object,Object,Object,Object,R,Object,Object,Object,Object,Object> {\r
+    @Override\r
+    public Object apply(Object p0) {\r
+        return new UnsaturatedFunction1(this, p0);\r
+    }\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1) {\r
+        return new UnsaturatedFunction2(this, p0, p1);\r
+    }\r
+\r
+    @Override\r
+    public abstract R apply(P0 p0, P1 p1, P2 p2);\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1, Object p2, Object p3) {\r
+        try {\r
+            return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3);\r
+        } catch(ClassCastException e) {\r
+            throw new CalledWithTooManyParameters();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4) {\r
+        try {\r
+            return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4);\r
+        } catch(ClassCastException e) {\r
+            throw new CalledWithTooManyParameters();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {\r
+        try {\r
+            return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5);\r
+        } catch(ClassCastException e) {\r
+            throw new CalledWithTooManyParameters();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {\r
+        try {\r
+            return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5, p6);\r
+        } catch(ClassCastException e) {\r
+            throw new CalledWithTooManyParameters();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {\r
+        try {\r
+            return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5, p6, p7);\r
+        } catch(ClassCastException e) {\r
+            throw new CalledWithTooManyParameters();\r
+        }\r
+    }\r
+\r
+    @Override\r
+    public Object applyArray(Object ... ps) {\r
+        switch(ps.length) {\r
+        case 0:\r
+            return this;\r
+        case 1:\r
+            return new UnsaturatedFunction1(this, ps[0]);\r
+        case 2:\r
+            return new UnsaturatedFunction2(this, ps[0], ps[1]);\r
+        case 3:\r
+            return apply((P0)ps[0], (P1)ps[1], (P2)ps[2]);\r
+        case 4:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 5:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 6:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 7:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 8:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6], ps[7]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 9:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6], ps[7], ps[8]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 10:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6], ps[7], ps[8], ps[9]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        case 11:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6], ps[7], ps[8], ps[9], ps[10]);\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        default:\r
+            try {\r
+                return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(Arrays.copyOfRange(ps, 3, ps.length));\r
+            } catch(ClassCastException e) {\r
+                throw new CalledWithTooManyParameters();\r
+            }\r
+        }\r
+    }\r
+}\r