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?

questionAnswers(2)

yourAnswerToTheQuestion