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