Lista StringTemplate de atributos definidos para um determinado modelo
Eu estou começando com StringTemplate 4 e estou tentando criar um modelo de uma seqüência simples armazenada em um banco de dados. Eu uso algo assim:
STGroup group = new STGroupString(null, someTemplateString, 'Agora tudo funciona bem se eu definir tudo ou menos que o atributo definido para o templatesomeTemplateName
. Agora, se eu tentar adicionar um atributo que não existe, recebo a seguinte exceção:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
o que faz sentido. No entanto, parece que não há como saber de antemão quais atributos estão definidos para o modelosomeTemplateName
. Eu estava esperando encontrar algo como:
bool isDef = st.isDefined(someAttribute);
mas não existe tal método. Estou correcto? Existe alguma maneira de contornar isso?
, 'Agora tudo funciona bem se eu definir tudo ou menos que o atributo definido para o templatesomeTemplateName
. Agora, se eu tentar adicionar um atributo que não existe, recebo a seguinte exceção:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
o que faz sentido. No entanto, parece que não há como saber de antemão quais atributos estão definidos para o modelosomeTemplateName
. Eu estava esperando encontrar algo como:
bool isDef = st.isDefined(someAttribute);
mas não existe tal método. Estou correcto? Existe alguma maneira de contornar isso?
);
ST st = group.getInstanceOf(someTemplateName);
st.add(someAttribute, someValue);
Agora tudo funciona bem se eu definir tudo ou menos que o atributo definido para o templatesomeTemplateName
. Agora, se eu tentar adicionar um atributo que não existe, recebo a seguinte exceção:
no such attribute: fake
java.lang.IllegalArgumentException: no such attribute: fake
...
o que faz sentido. No entanto, parece que não há como saber de antemão quais atributos estão definidos para o modelosomeTemplateName
. Eu estava esperando encontrar algo como:
bool isDef = st.isDefined(someAttribute);
mas não existe tal método. Estou correcto? Existe alguma maneira de contornar isso?