@@ -11,6 +11,12 @@ final class JavaClassDeferredLoader implements JavaClassInterface
1111 private $ options = [];
1212 private $ javaClass ;
1313
14+ /**
15+ * JavaClassDeferredLoader constructor.
16+ * @param string $deferLoadingReaderClass
17+ * @param array $arguments
18+ * @param array $options
19+ */
1420 public function __construct (
1521 string $ deferLoadingReaderClass ,
1622 array $ arguments = [],
@@ -21,18 +27,43 @@ public function __construct(
2127 $ this ->options = $ options ;
2228 }
2329
30+ /**
31+ * @param $name
32+ * @param $arguments
33+ * @return mixed
34+ * @throws \PHPJava\Exceptions\ReadEntryException
35+ * @throws \PHPJava\Exceptions\UnknownVersionException
36+ * @throws \PHPJava\Exceptions\ValidatorException
37+ */
2438 public function __call ($ name , $ arguments )
2539 {
26- $ this ->initializeIfNotInitiated ();
27- return $ this ->javaClass ->{$ name }(...$ arguments );
40+ return ($ this ->initializeIfNotInitiated ())->{$ name }(...$ arguments );
2841 }
2942
30- private function initializeIfNotInitiated ()
43+ /**
44+ * @param mixed ...$arguments
45+ * @return JavaClassInterface
46+ * @throws \PHPJava\Exceptions\ReadEntryException
47+ * @throws \PHPJava\Exceptions\UnknownVersionException
48+ * @throws \PHPJava\Exceptions\ValidatorException
49+ */
50+ public function __invoke (...$ arguments ): JavaClassInterface
51+ {
52+ return ($ this ->initializeIfNotInitiated ())(...$ arguments );
53+ }
54+
55+ /**
56+ * @return JavaClass
57+ * @throws \PHPJava\Exceptions\ReadEntryException
58+ * @throws \PHPJava\Exceptions\UnknownVersionException
59+ * @throws \PHPJava\Exceptions\ValidatorException
60+ */
61+ private function initializeIfNotInitiated (): JavaClass
3162 {
3263 if (isset ($ this ->javaClass )) {
3364 return $ this ->javaClass ;
3465 }
35- $ this ->javaClass = new JavaClass (
66+ return $ this ->javaClass = new JavaClass (
3667 new $ this ->deferLoadingReaderClass (...$ this ->arguments ),
3768 $ this ->options
3869 );
0 commit comments