@@ -83,37 +83,39 @@ String generateMethods(String type) {
8383 if (methodCounts > 0 ) {
8484 for (int i = 0 ; i < runnablesAndCallablesCounts ; i ++) {
8585 String suffix = i == 0 ? "" : "" + i ;
86+ String getInstanceIdx = i == 0 || methodCounts == 1 ? "" : "" + Math .min (i , methodCounts - 1 );
8687 String result = "\t public void run" + suffix + "() {\n " +
8788 "\t \t try {\n " +
8889 "\t \t \t this.call" + suffix + "();\n " +
8990 "\t \t } catch (Exception e) {}\n " +
9091 "\t \t " + "Runnable r = () -> {\n " +
91- "\t \t " + " run" + suffix + "();\n " +
92+ "\t \t " + " run" + suffix + "();\n " +
9293 "\t \t " + " set(this);\n " +
9394 "\t \t " + " get();\n " +
94- "\t \t " + "};\n " +
95+ "\t \t " + "};\n " +
9596 "\t \t " + "r.run();\n " +
9697 "\t \t " + "r = this::run;\n " +
9798 "\t \t " + "r.run();\n " +
9899 "\t \t " + "r = " + extend + ".instance::run;\n " +
99100 "\t \t " + "r.run();\n " +
100- "\t \t " + extend + ".getInstance" + suffix + "().run();\n " +
101+ "\t \t " + extend + ".getInstance" + getInstanceIdx + "().run();\n " +
101102 "\t }\n \n " ;
102103 sb .append (result );
103104 }
104105 for (int i = 0 ; i < runnablesAndCallablesCounts ; i ++) {
105106 String suffix = i == 0 ? "" : "" + i ;
107+ String getInstanceIdx = i == 0 || methodCounts == 1 ? "" : "" + Math .min (i , methodCounts - 1 );
106108 String result = "\t public " +type +" call" + suffix + "() throws Exception {\n " +
107- "\t \t " + extend + ".getInstance" + suffix + "().call();\n " +
109+ "\t \t " + extend + ".getInstance" + getInstanceIdx + "().call();\n " +
108110 "\t \t " + "java.util.concurrent.Callable<?> c = () -> {\n " +
109- "\t \t " + " call" + suffix + "();\n " +
111+ "\t \t " + " call" + suffix + "();\n " +
110112 "\t \t " + " set(this);\n " +
111113 "\t \t " + " return get();\n " +
112- "\t \t " + "};\n " +
114+ "\t \t " + "};\n " +
113115 "\t \t " + "c.call();\n " +
114- "\t \t " + "c = " + extend + ".getInstance" + suffix + "()::call;\n " +
116+ "\t \t " + "c = " + extend + ".getInstance" + getInstanceIdx + "()::call;\n " +
115117 "\t \t " + "c.call();\n " +
116- "\t \t return (" +type +")" + extend + ".getInstance" + suffix + "().call" + suffix + "();\n " +
118+ "\t \t return (" +type +")" + extend + ".getInstance" + getInstanceIdx + "().call" + getInstanceIdx + "();\n " +
117119 "\t }\n \n " ;
118120 sb .append (result );
119121 }
0 commit comments