From a7011f4d896dd17e47b5d1682727e61e88e0cb48 Mon Sep 17 00:00:00 2001 From: Benjamin Renard Date: Mon, 20 Nov 2017 16:40:50 +0100 Subject: [PATCH] Generated list for arguments of a templated parameter --- src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php b/src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php index f20eb90..9867d29 100644 --- a/src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php +++ b/src/InputOutput/IHMImpl/Tools/IHMParamTemplateClass.php @@ -18,6 +18,9 @@ class IHMParamTemplateClass protected static $paramTemplateArgumentKeyAtt = 'key'; protected static $paramTemplateArgumentNameAtt = 'name'; protected static $paramTemplateArgumentTypeAtt = 'type'; + protected static $paramTemplateArgumentMinKeyAtt = 'minkey'; + protected static $paramTemplateArgumentMaxKeyAtt = 'maxkey'; + protected static $paramTemplateArgumentNameTplAtt = 'nametpl'; protected static $paramTemplateArgumentDefaultAtt = 'default'; protected static $paramTemplateArgumentListItemNode = 'item'; protected static $paramTemplateArgumentListItemKeyAtt = 'key'; @@ -263,6 +266,9 @@ class IHMParamTemplateClass $argumentName = $argumentNode->getAttribute(self::$paramTemplateArgumentNameAtt); $argumentType = $argumentNode->getAttribute(self::$paramTemplateArgumentTypeAtt); $argumentDefault = $argumentNode->getAttribute(self::$paramTemplateArgumentDefaultAtt); + $argumentMinKey = $argumentNode->getAttribute(self::$paramTemplateArgumentMinKeyAtt); + $argumentMaxKey = $argumentNode->getAttribute(self::$paramTemplateArgumentMaxKeyAtt); + $argumentNameTpl = $argumentNode->getAttribute(self::$paramTemplateArgumentNameTplAtt); if (empty($argumentKey) || empty($argumentType)) continue; @@ -285,7 +291,14 @@ class IHMParamTemplateClass continue; $arguments[$argumentKey]['items'][$itemKey] = (empty($itemName) ? $itemKey : $itemName); } - + break; + case "generated-list": + $arguments[$argumentKey]['type'] = 'list'; + $arguments[$argumentKey]['items'] = array(); + for ($key = intval($argumentMinKey) ; $key <= intval($argumentMaxKey); ++$key) { + $itemName = str_replace('##key##',$key,$argumentNameTpl); + $arguments[$argumentKey]['items'][strval($key)] = $itemName; + } break; default: //Nothing to do @@ -300,4 +313,4 @@ class IHMParamTemplateClass } } -} \ No newline at end of file +} -- libgit2 0.21.2