Lista atrybutów StringTemplate zdefiniowanych dla danego szablonu
Zaczynam pracę z StringTemplate 4 i próbuję utworzyć szablon z prostego ciągu przechowywanego w bazie danych. Używam czegoś takiego:
STGroup group = new STGroupString(null, someTemplateString, 'Teraz wszystko działa dobrze, jeśli zdefiniuję wszystko lub mniej niż atrybut zdefiniowany dla szablonusomeTemplateName
. Jeśli spróbuję dodać atrybut, który nie istnieje, otrzymuję następujący wyjątek:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
co ma sens. Wydaje się jednak, że nie mam możliwości wcześniejszego określenia, które atrybuty są zdefiniowane dla szablonusomeTemplateName
. Spodziewałem się znaleźć coś takiego:
bool isDef = st.isDefined(someAttribute);
ale nie ma takiej metody. Mam rację? Czy jest jakiś sposób na to?
, 'Teraz wszystko działa dobrze, jeśli zdefiniuję wszystko lub mniej niż atrybut zdefiniowany dla szablonusomeTemplateName
. Jeśli spróbuję dodać atrybut, który nie istnieje, otrzymuję następujący wyjątek:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
co ma sens. Wydaje się jednak, że nie mam możliwości wcześniejszego określenia, które atrybuty są zdefiniowane dla szablonusomeTemplateName
. Spodziewałem się znaleźć coś takiego:
bool isDef = st.isDefined(someAttribute);
ale nie ma takiej metody. Mam rację? Czy jest jakiś sposób na to?
);
ST st = group.getInstanceOf(someTemplateName);
st.add(someAttribute, someValue);
Teraz wszystko działa dobrze, jeśli zdefiniuję wszystko lub mniej niż atrybut zdefiniowany dla szablonusomeTemplateName
. Jeśli spróbuję dodać atrybut, który nie istnieje, otrzymuję następujący wyjątek:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
co ma sens. Wydaje się jednak, że nie mam możliwości wcześniejszego określenia, które atrybuty są zdefiniowane dla szablonusomeTemplateName
. Spodziewałem się znaleźć coś takiego:
bool isDef = st.isDefined(someAttribute);
ale nie ma takiej metody. Mam rację? Czy jest jakiś sposób na to?