[stringtemplate-interest] [antlr-interest] StringTemplate functions like capitalize()?

John Snyders jjsnyders at rcn.com
Fri Feb 8 23:06:19 PST 2008


Not sure what version of StringTemplate you have but the newer versions 
have the format option that will allow you to do something like 
"capitalizeFirst"
-John

Nate wrote:
> Calling an arbitrary method from ST is against the rules, but the action 
> the OP is trying to perform is for display only. The only real solution 
> is to get the ST source and add a capitalizeFirst function. Other 
> solutions are clunky at the very least.
>
> On a similar note, I have found the lack of ST expressiveness a problem. 
> I have lists of objects that contain the data I want to display. In many 
> cases the objects contain lists of other objects. When the data in my 
> objects are not in such a format that ST can display them like I want, I 
> find I have to modify my objects to expose the data in the way ST needs. 
> What this means is that the UI layer is affecting my API. For simple 
> templates, values can be retreived from an object and put in various 
> template attributes. But more complex object graphs make this very messy 
> and difficult, if not impossible.
>
> I am all for separating model and view, but I don't think view-only 
> logic expressiveness should be lost. As it is now with ST being 
> relatively strict with enforcing the "rules", there are still various 
> ways I can break the separation. 100% fool proof would make ST too 
> restrictive and difficult to use. You have made certain sacrifices and 
> this makes sense. I think ST should follow all the rules out of the box 
> and enforce them to the best of its ability, but make it easier to 
> implement view-only logic. It should be easy to add a view method like 
> capitalizeFirst.
>
> -Nate
>
>
> Terence Parr wrote:
>   
>> Hi, That is against the "rules".  Can't call generate code from a view.
>>
>> You need a renderer or the like.
>>
>> ter
>> On Mar 18, 2007, at 4:16 AM, Joan Pujol wrote:
>>
>>   
>>     
>>> Hello,
>>>
>>> It's possible to call a external function with stringtemplate?
>>> I've the problem that I'm generating Java code and for Beans  
>>> convention I need to capitalize.
>>>
>>> Something like:
>>>
>>> basictype(name,type)::= <<
>>>     private final <typeMap.(type)> name= new <typeMap.(type)>();
>>>
>>>     public <typeMap.(type)> get<name>()   {  capitalization wanted  
>>> in get<name>()
>>>         return <name>;
>>>     }
>>>
>>>     
>>> -- 
>>> Joan Jesús Pujol Espinar
>>> http://www.joanpujol.cat
>>> http://lujop.deviantart.com
>>>     
>>>       
>
> _______________________________________________
> stringtemplate-interest mailing list
> stringtemplate-interest at antlr.org
> http://www.antlr.org:8080/mailman/listinfo/stringtemplate-interest
>
>   


More information about the stringtemplate-interest mailing list