--- /dev/null
+/**
+ * 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 FunctionImpl5<P0,P1,P2,P3,P4,R> implements Function<P0,P1,P2,P3,P4,Object,Object,Object,Object,Object,Object,Object,R,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 Object apply(Object p0, Object p1, Object p2) {\r
+ return new UnsaturatedFunction3(this, p0, p1, p2);\r
+ }\r
+\r
+ @Override\r
+ public Object apply(Object p0, Object p1, Object p2, Object p3) {\r
+ return new UnsaturatedFunction4(this, p0, p1, p2, p3);\r
+ }\r
+\r
+ @Override\r
+ public abstract R apply(P0 p0, P1 p1, P2 p2, P3 p3, P4 p4);\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, (P3)p3, (P4)p4)).apply(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, (P3)p3, (P4)p4)).apply(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, (P3)p3, (P4)p4)).apply(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 new UnsaturatedFunction3(this, ps[0], ps[1], ps[2]);\r
+ case 4:\r
+ return new UnsaturatedFunction4(this, ps[0], ps[1], ps[2], ps[3]);\r
+ case 5:\r
+ return apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4]);\r
+ case 6:\r
+ try {\r
+ return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4])).apply(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], (P3)ps[3], (P4)ps[4])).apply(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], (P3)ps[3], (P4)ps[4])).apply(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], (P3)ps[3], (P4)ps[4])).apply(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], (P3)ps[3], (P4)ps[4])).apply(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], (P3)ps[3], (P4)ps[4])).apply(ps[5], ps[6], ps[7], ps[8], ps[9], ps[10]);\r
+ } catch(ClassCastException e) {\r
+ throw new CalledWithTooManyParameters();\r
+ }\r
+ case 12:\r
+ try {\r
+ return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4])).apply(ps[5], ps[6], ps[7], ps[8], ps[9], ps[10], ps[11]);\r
+ } catch(ClassCastException e) {\r
+ throw new CalledWithTooManyParameters();\r
+ }\r
+ case 13:\r
+ try {\r
+ return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3], (P4)ps[4])).apply(ps[5], ps[6], ps[7], ps[8], ps[9], ps[10], ps[11], ps[12]);\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], (P3)ps[3], (P4)ps[4])).apply(Arrays.copyOfRange(ps, 5, ps.length));\r
+ } catch(ClassCastException e) {\r
+ throw new CalledWithTooManyParameters();\r
+ }\r
+ }\r
+ }\r
+}\r