Skip to content

Commit 9cd696e

Browse files
author
Ruslan Dudin
committed
#6 Fn from lambdas
1 parent 768e4b5 commit 9cd696e

File tree

2 files changed

+564
-0
lines changed

2 files changed

+564
-0
lines changed
+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
package org.whaka.clj;
2+
3+
import clojure.lang.IFn;
4+
import clojure.lang.ISeq;
5+
6+
public interface GenericIFn extends IFn {
7+
8+
@SuppressWarnings("unchecked")
9+
default <T> T _invoke() {
10+
return (T) invoke();
11+
}
12+
13+
@SuppressWarnings("unchecked")
14+
default <T> T _invoke(Object arg1) {
15+
return (T) invoke(arg1);
16+
}
17+
18+
@SuppressWarnings("unchecked")
19+
default <T> T _invoke(Object arg1, Object arg2) {
20+
return (T) invoke(arg1, arg2);
21+
}
22+
23+
@SuppressWarnings("unchecked")
24+
default <T> T _invoke(Object arg1, Object arg2, Object arg3) {
25+
return (T) invoke(arg1, arg2, arg3);
26+
}
27+
28+
@SuppressWarnings("unchecked")
29+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4) {
30+
return (T) invoke(arg1, arg2, arg3, arg4);
31+
}
32+
33+
@SuppressWarnings("unchecked")
34+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) {
35+
return (T) invoke(arg1, arg2, arg3, arg4, arg5);
36+
}
37+
38+
@SuppressWarnings("unchecked")
39+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6) {
40+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6);
41+
}
42+
43+
@SuppressWarnings("unchecked")
44+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6,
45+
Object arg7) {
46+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7);
47+
}
48+
49+
@SuppressWarnings("unchecked")
50+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
51+
Object arg8) {
52+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
53+
}
54+
55+
@SuppressWarnings("unchecked")
56+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
57+
Object arg8, Object arg9) {
58+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
59+
}
60+
61+
@SuppressWarnings("unchecked")
62+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
63+
Object arg8, Object arg9, Object arg10) {
64+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10);
65+
}
66+
67+
@SuppressWarnings("unchecked")
68+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
69+
Object arg8, Object arg9, Object arg10, Object arg11) {
70+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11);
71+
}
72+
73+
@SuppressWarnings("unchecked")
74+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
75+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12) {
76+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12);
77+
}
78+
79+
@SuppressWarnings("unchecked")
80+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
81+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13) {
82+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13);
83+
}
84+
85+
@SuppressWarnings("unchecked")
86+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
87+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14) {
88+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14);
89+
}
90+
91+
@SuppressWarnings("unchecked")
92+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
93+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
94+
Object arg15) {
95+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15);
96+
}
97+
98+
@SuppressWarnings("unchecked")
99+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
100+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
101+
Object arg15, Object arg16) {
102+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16);
103+
}
104+
105+
@SuppressWarnings("unchecked")
106+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
107+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
108+
Object arg15, Object arg16, Object arg17) {
109+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17);
110+
}
111+
112+
@SuppressWarnings("unchecked")
113+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
114+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
115+
Object arg15, Object arg16, Object arg17, Object arg18) {
116+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18);
117+
}
118+
119+
@SuppressWarnings("unchecked")
120+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
121+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
122+
Object arg15, Object arg16, Object arg17, Object arg18, Object arg19) {
123+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19);
124+
}
125+
126+
@SuppressWarnings("unchecked")
127+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
128+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
129+
Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20) {
130+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20);
131+
}
132+
133+
@SuppressWarnings("unchecked")
134+
default <T> T _invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object arg6, Object arg7,
135+
Object arg8, Object arg9, Object arg10, Object arg11, Object arg12, Object arg13, Object arg14,
136+
Object arg15, Object arg16, Object arg17, Object arg18, Object arg19, Object arg20, Object... args) {
137+
return (T) invoke(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11, arg12, arg13, arg14, arg15, arg16, arg17, arg18, arg19, arg20, args);
138+
}
139+
140+
@SuppressWarnings("unchecked")
141+
default <T> T _applyTo(ISeq arglist) {
142+
return (T) applyTo(arglist);
143+
}
144+
}

0 commit comments

Comments
 (0)