]> gerrit.simantics Code Review - simantics/platform.git/blob - 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
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 FunctionImpl3<P0,P1,P2,R> implements Function<P0,P1,P2,Object,Object,Object,Object,Object,Object,Object,R,Object,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 abstract R apply(P0 p0, P1 p1, P2 p2);\r
23 \r
24     @Override\r
25     public Object apply(Object p0, Object p1, Object p2, Object p3) {\r
26         try {\r
27             return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3);\r
28         } catch(ClassCastException e) {\r
29             throw new CalledWithTooManyParameters();\r
30         }\r
31     }\r
32 \r
33     @Override\r
34     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4) {\r
35         try {\r
36             return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4);\r
37         } catch(ClassCastException e) {\r
38             throw new CalledWithTooManyParameters();\r
39         }\r
40     }\r
41 \r
42     @Override\r
43     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5) {\r
44         try {\r
45             return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5);\r
46         } catch(ClassCastException e) {\r
47             throw new CalledWithTooManyParameters();\r
48         }\r
49     }\r
50 \r
51     @Override\r
52     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6) {\r
53         try {\r
54             return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5, p6);\r
55         } catch(ClassCastException e) {\r
56             throw new CalledWithTooManyParameters();\r
57         }\r
58     }\r
59 \r
60     @Override\r
61     public Object apply(Object p0, Object p1, Object p2, Object p3, Object p4, Object p5, Object p6, Object p7) {\r
62         try {\r
63             return ((Function)apply((P0)p0, (P1)p1, (P2)p2)).apply(p3, p4, p5, p6, p7);\r
64         } catch(ClassCastException e) {\r
65             throw new CalledWithTooManyParameters();\r
66         }\r
67     }\r
68 \r
69     @Override\r
70     public Object applyArray(Object ... ps) {\r
71         switch(ps.length) {\r
72         case 0:\r
73             return this;\r
74         case 1:\r
75             return new UnsaturatedFunction1(this, ps[0]);\r
76         case 2:\r
77             return new UnsaturatedFunction2(this, ps[0], ps[1]);\r
78         case 3:\r
79             return apply((P0)ps[0], (P1)ps[1], (P2)ps[2]);\r
80         case 4:\r
81             try {\r
82                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3]);\r
83             } catch(ClassCastException e) {\r
84                 throw new CalledWithTooManyParameters();\r
85             }\r
86         case 5:\r
87             try {\r
88                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4]);\r
89             } catch(ClassCastException e) {\r
90                 throw new CalledWithTooManyParameters();\r
91             }\r
92         case 6:\r
93             try {\r
94                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5]);\r
95             } catch(ClassCastException e) {\r
96                 throw new CalledWithTooManyParameters();\r
97             }\r
98         case 7:\r
99             try {\r
100                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6]);\r
101             } catch(ClassCastException e) {\r
102                 throw new CalledWithTooManyParameters();\r
103             }\r
104         case 8:\r
105             try {\r
106                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(ps[3], ps[4], ps[5], ps[6], ps[7]);\r
107             } catch(ClassCastException e) {\r
108                 throw new CalledWithTooManyParameters();\r
109             }\r
110         case 9:\r
111             try {\r
112                 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
113             } catch(ClassCastException e) {\r
114                 throw new CalledWithTooManyParameters();\r
115             }\r
116         case 10:\r
117             try {\r
118                 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
119             } catch(ClassCastException e) {\r
120                 throw new CalledWithTooManyParameters();\r
121             }\r
122         case 11:\r
123             try {\r
124                 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
125             } catch(ClassCastException e) {\r
126                 throw new CalledWithTooManyParameters();\r
127             }\r
128         default:\r
129             try {\r
130                 return ((Function)apply((P0)ps[0], (P1)ps[1], (P2)ps[2])).apply(Arrays.copyOfRange(ps, 3, ps.length));\r
131             } catch(ClassCastException e) {\r
132                 throw new CalledWithTooManyParameters();\r
133             }\r
134         }\r
135     }\r
136 }\r