Есть ли краткий способ ссылки на свойство свойства в StringTemplate
Я хочу написать <prop1.subprop1:sometemplate>
применить шаблон к списку в свойстве свойства. Чтобы сделать это, мне нужно сделать два уровня шаблона: я должен вызвать внешний на prop1, а затем обработать следующее свойство.
Модель данных:
class Clazz {
String name;
Class parent;
}
Цель:
class(c) ::= <<
<c.parent.name> <! oops, not allowed !>
>>
Так что я в конечном итоге
<c.parent:{ p | <p.name> }>
что немного неуклюже
Тогда я дошел до этого:
class Attr {
List<String> requiredParameters;
Attr baseObject;
}
и я хочу сгенерировать:
def __init__(self, reqparam1, ... rewqparamN)
где первый 'reqparam' от самого глубокого пункта. Я попытался написать следующее, но ST дает мне синтаксические ошибки во втором шаблоне, где я пытаюсь рекурсивно составить список.
self_and_list(list) ::= << self<if(first(list))>, <endif><list;separator=", "> >>
recurse_req(attr) ::= "<[<attr.baseObject:recurse_req()>, <attr.requiredParameters>]>"
self_and_req_params(attribute) ::= "<self_and_list(<attribute:recurse_req()>)>"