]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.scl.runtime/src/org/simantics/scl/runtime/function/FunctionImpl4.java
Migrated source code from Simantics SVN
[simantics/platform.git] / bundles / org.simantics.scl.runtime / src / org / simantics / scl / runtime / function / FunctionImpl4.java
1 /**
2  * This code is generated in org.simantics.scl.runtime.generation.GenerateFunctions.
3  * Do not edit manually!
4  */\r
5 package org.simantics.scl.runtime.function;\r
6 \r
7 import java.util.Arrays;\r
8 \r
9 @SuppressWarnings("all")\r
10 public abstract class FunctionImpl4<P0,P1,P2,P3,R> implements Function<P0,P1,P2,P3,Object,Object,Object,Object,Object,Object,Object,R,Object,Object,Object,Object> {\r
11     @Override\r
12     public Object apply(Object p0) {\r
13         return new UnsaturatedFunction1(this, p0);\r
14     }\r
15 \r
16     @Override\r
17     public Object apply(Object p0, Object p1) {\r
18         return new UnsaturatedFunction2(this, p0, p1);\r
19     }\r
20 \r
21     @Override\r
22     public Object apply(Object p0, Object p1, Object p2) {\r
23         return new UnsaturatedFunction3(this, p0, p1, p2);\r
24     }\r
25 \r
26     @Override\r
27     public abstract R apply(P0 p0, P1 p1, P2 p2, P3 p3);\r
28 \r
29     @Override\r
30     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4) {\r
31         try {\r
32             return ((Function)apply((P0)p0, (P1)p1, (P2)p2, (P3)p3)).apply(p4);\r
33         } catch(ClassCastException e) {\r
34             throw new CalledWithTooManyParameters();\r
35         }\r
36     }\r
37 \r
38     @Override\r
39     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {\r
40         try {\r
41             return ((Function)apply((P0)p0, (P1)p1, (P2)p2, (P3)p3)).apply(p4, p5);\r
42         } catch(ClassCastException e) {\r
43             throw new CalledWithTooManyParameters();\r
44         }\r
45     }\r
46 \r
47     @Override\r
48     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {\r
49         try {\r
50             return ((Function)apply((P0)p0, (P1)p1, (P2)p2, (P3)p3)).apply(p4, p5, p6);\r
51         } catch(ClassCastException e) {\r
52             throw new CalledWithTooManyParameters();\r
53         }\r
54     }\r
55 \r
56     @Override\r
57     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {\r
58         try {\r
59             return ((Function)apply((P0)p0, (P1)p1, (P2)p2, (P3)p3)).apply(p4, p5, p6, p7);\r
60         } catch(ClassCastException e) {\r
61             throw new CalledWithTooManyParameters();\r
62         }\r
63     }\r
64 \r
65     @Override\r
66     public Object applyArray(Object ... ps) {\r
67         switch(ps.length) {\r
68         case 0:\r
69             return this;\r
70         case 1:\r
71             return new UnsaturatedFunction1(this, ps[0]);\r
72         case 2:\r
73             return new UnsaturatedFunction2(this, ps[0], ps[1]);\r
74         case 3:\r
75             return new UnsaturatedFunction3(this, ps[0], ps[1], ps[2]);\r
76         case 4:\r
77             return apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3]);\r
78         case 5:\r
79             try {\r
80                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4]);\r
81             } catch(ClassCastException e) {\r
82                 throw new CalledWithTooManyParameters();\r
83             }\r
84         case 6:\r
85             try {\r
86                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5]);\r
87             } catch(ClassCastException e) {\r
88                 throw new CalledWithTooManyParameters();\r
89             }\r
90         case 7:\r
91             try {\r
92                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6]);\r
93             } catch(ClassCastException e) {\r
94                 throw new CalledWithTooManyParameters();\r
95             }\r
96         case 8:\r
97             try {\r
98                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6], ps[7]);\r
99             } catch(ClassCastException e) {\r
100                 throw new CalledWithTooManyParameters();\r
101             }\r
102         case 9:\r
103             try {\r
104                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6], ps[7], ps[8]);\r
105             } catch(ClassCastException e) {\r
106                 throw new CalledWithTooManyParameters();\r
107             }\r
108         case 10:\r
109             try {\r
110                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6], ps[7], ps[8], ps[9]);\r
111             } catch(ClassCastException e) {\r
112                 throw new CalledWithTooManyParameters();\r
113             }\r
114         case 11:\r
115             try {\r
116                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6], ps[7], ps[8], ps[9], ps[10]);\r
117             } catch(ClassCastException e) {\r
118                 throw new CalledWithTooManyParameters();\r
119             }\r
120         case 12:\r
121             try {\r
122                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(ps[4], ps[5], ps[6], ps[7], ps[8], ps[9], ps[10], ps[11]);\r
123             } catch(ClassCastException e) {\r
124                 throw new CalledWithTooManyParameters();\r
125             }\r
126         default:\r
127             try {\r
128                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2], (P3)ps[3])).apply(Arrays.copyOfRange(ps, 4, ps.length));\r
129             } catch(ClassCastException e) {\r
130                 throw new CalledWithTooManyParameters();\r
131             }\r
132         }\r
133     }\r
134 }\r