1919 */
2020trait ParameterParseable
2121{
22- public function parseParameterFromNode (Node $ node, array $ defaultParameters = [] ): array
22+ public function parseParameterFromNode (Node $ node ): array
2323 {
24+ // Get parameters
25+ $ parameters = [
26+ // variable name => literal type
27+ ];
28+ foreach ($ node ->getParams () as $ parameter ) {
29+ /**
30+ * @var \PhpParser\Node\Param $parameter
31+ */
32+ $ parameters [$ parameter ->var ->name ] = $ parameter ->type ;
33+ }
34+
2435 $ paramOrdersTable = [];
2536
2637 foreach ($ node ->params as $ index => $ param ) {
@@ -30,7 +41,6 @@ public function parseParameterFromNode(Node $node, array $defaultParameters = []
3041 $ paramOrdersTable [$ param ->var ->name ] = $ index ;
3142 }
3243
33- $ parameters = $ defaultParameters ;
3444 foreach (($ node ->getAttribute ('comments ' ) ?? []) as $ commentAttribute ) {
3545 /**
3646 * @var \PhpParser\Comment\Doc $commentAttribute
@@ -54,7 +64,7 @@ public function parseParameterFromNode(Node $node, array $defaultParameters = []
5464
5565 // Update variable detail.
5666 $ parameters [$ variableName ] = [
57- 'type ' => Formatter::convertStringifiedPrimitiveTypeToKernelType (
67+ 'type ' => Formatter::convertPHPPrimitiveTypeToJavaType (
5868 str_replace (
5969 '[] ' ,
6070 '' ,
@@ -83,18 +93,21 @@ public function parseParameterFromNode(Node $node, array $defaultParameters = []
8393 }
8494 }
8595
86- $ parameters = array_filter (
87- $ parameters ,
88- static function ($ parameter , $ name ) {
89- if ($ parameter === null ) {
90- throw new AssembleStructureException (
91- 'Parameter length are mismatch or $ ' . $ name . ' is not defined parameter type. '
92- );
93- }
94- return true ;
95- },
96- ARRAY_FILTER_USE_BOTH
97- );
96+ foreach ($ parameters as $ variableName => $ parameter ) {
97+ if ($ parameter === null ) {
98+ throw new AssembleStructureException (
99+ 'Parameter length are mismatch or $ ' . $ variableName . ' is not defined parameter type. '
100+ );
101+ }
102+ if ($ parameter instanceof Node \Identifier) {
103+ $ type = $ parameter ->name ;
104+ $ parameters [$ variableName ] = [
105+ 'type ' => Formatter::convertPHPPrimitiveTypeToJavaType ($ type ),
106+ 'dimensions_of_array ' => 0 ,
107+ 'order ' => $ paramOrdersTable [$ variableName ],
108+ ];
109+ }
110+ }
98111
99112 uasort (
100113 $ parameters ,
0 commit comments