@@ -80,11 +80,29 @@ String generateMethods(String type) {
8080 "\t \t try {\n " +
8181 "\t \t \t this.call" + suffix + "();\n " +
8282 "\t \t } catch (Exception e) {}\n " +
83+ "\t \t " + "Runnable r = () -> {\n " +
84+ "\t \t " + " run" + suffix + "();\n " +
85+ "\t \t " + " set(this);\n " +
86+ "\t \t " + " get();\n " +
87+ "\t \t " + "};\n " +
88+ "\t \t " + "r.run();\n " +
89+ "\t \t " + "r = this::run;\n " +
90+ "\t \t " + "r.run();\n " +
91+ "\t \t " + "r = " + extend + ".instance::run;\n " +
92+ "\t \t " + "r.run();\n " +
8393 "\t \t " + extend + ".getInstance" + suffix + "().run();\n " +
8494 "\t }\n \n " +
8595 "\t public " +type +" call" + suffix + "() throws Exception {\n " +
86- "\t \t " + extend + ".getInstance" + suffix + "().run();\n " +
87- "\t \t return (" +type +")" + extend + ".getInstance" + suffix + "().call" + suffix + "();\n " +
96+ "\t \t " + extend + ".getInstance" + suffix + "().call();\n " +
97+ "\t \t " + "java.util.concurrent.Callable<?> c = () -> {\n " +
98+ "\t \t " + " call" + suffix + "();\n " +
99+ "\t \t " + " set(this);\n " +
100+ "\t \t " + " return get();\n " +
101+ "\t \t " + "};\n " +
102+ "\t \t " + "c.call();\n " +
103+ "\t \t " + "c = " + extend + ".getInstance" + suffix + "()::call;\n " +
104+ "\t \t " + "c.call();\n " +
105+ "\t \t return (" +type +")" + extend + ".getInstance" + suffix + "().call" + suffix + "();\n " +
88106 "\t }\n " ;
89107 sb .append (result );
90108 }
0 commit comments