+ }
+ return $this->getName() . '(' . $output . ')';
+ }
+
+ /**
+ * @param array $arg
+ * @param array $param
+ * @param array $fieldList
+ * @return string
+ */
+ private function renderArg($arg, $param, $fieldList): string {
+ // Supply api_default
+ if (!isset($arg['prefix']) && !isset($arg['suffix']) && empty($arg['expr']) && !empty($param['api_default'])) {
+ $arg = [
+ 'prefix' => $param['api_default']['prefix'] ?? reset($param['prefix']),
+ 'expr' => array_map([parent::class, 'convert'], $param['api_default']['expr'] ?? []),
+ 'suffix' => $param['api_default']['suffix'] ?? reset($param['suffix']),
+ ];
+ }
+ $rendered = $arg['prefix'] ?? '';
+ foreach ($arg['expr'] ?? [] as $idx => $expr) {
+ if (strlen($rendered) || $idx) {
+ $rendered .= $idx ? ', ' : ' ';