[stringtemplate-interest] auto-flattening lists

John Snyders jjsnyders at rcn.com
Fri Nov 9 19:31:37 PST 2007


>> Thanks for entering a bug for this.
>>     Even though |$table(t=[ [ "a", "b" ], [ "c", "d" ] ])$| is 
>> allowed it gets flattened.
>>
>> The bug isn't explicit about what the expected fix is. Perhaps it is 
>> obvious but I'll say it anyway.
>> My expectation is that the t argument to the table template be set to 
>> a list which contains two elements
>> the first being a list of elements "a" and "b" and the second being a 
>> list of elements "c" and "d".
>
> Yes, makes sense when you use a list literal inside the template...i 
> never do that.  is that common?
We won't know until it works as expected ;-)
It was a long time ago but I think I did try to do something like that once.

>> The blog post is all about the data model of ST and has nothing to 
>> say about Java API calls
>> such as setAttribute. Am I correct that the use you are asking about 
>> is where setAttribute is
>> used to build up a list item by item? I don't think I used that 
>> pattern much. I tend to have a
>> fully formed data structure already and then just do one setAttribute 
>> for it.
>
> Me too.  It should not flatten in that case.  I don't believe the 
> software flattens it now.  Only repeated setAttributes do that.
>
>>
>> I think that the setAttribute behavior is correct
>
> ok, cool.
>
>> // myList is "a","b"
>> // myOther list is "c", "d"
>> setAttribute(foo, myList)
>> setAttribute(foo, myOtherList)
>> setAttribute(foo, "e")
>> // should result in foo being the list "a", "b", "c", "d", "e"
>> If you want deep structure to your attributes just build it first 
>> then call setAttribute once.
>
> Great. Ok, i'll just leave everything as is for now.  That bug for 
> list literals can be left for a while.
>
> Ter
>


More information about the stringtemplate-interest mailing list