Is there any reasonable benefit from using ST in "transform layer" ? I tend to believe that C2/C3 authors overly favor ST templates in the whole C architecture. Does it stem from the mere fact that ST is deadly simple/fast to compute (transform data) while being very general-purpose ? Or is there any other reason ? In my opinion ST is pretty exotic, i mean it is neither any valid standard, nor seen in any favorable (Java EE) technology stack.
As this case shows, its not a valid engine for general-purpose problems. Im not giving here the alternatives yet, because i would like to hear first the reasons behind choosing ST as a preferable template engine in C2/C3. Greetings, Greg 2012/10/5 Francesco Chicchiriccò <[email protected]> > On 04/10/2012 08:53, André Juffer wrote: > > Hello, > > > > I am dealing with the following problem. A REST resource returns an > > (DTO) object called statistics (of type Statistics) holding various > > properties. With string template, each property can be inserted into > > an XML file, like > > > > <A>$statistics.propertyA$</A> > > > > where the corresponding method on the Statistics object is > > getPropertyA(). > > > > One of the properties requires an argument of type String, where the > > actual method signature is getNumberFor(String name). It returns an > > int. The name is obtained from a list of names obtained from the > > statistics objects as well. The idea is to iterate through the list of > > names and return a number (int) for each name. > > > > Thus, the XML code that I try to complete looks like: > > <socials> > > $statistics.names: { name | > > <social> > > <name>$name$</name> > > <number>$statistics.numberFor(name)$</tribc:number> > > </social> > > }$ > > </socials> > > > > The Statistics object holds among other things a Map<String, Integer> > > with the requested numbers. > > > > The line $statistics.numberFor(name)$ is however erroneous. I cannot > > pass the current value of name to the method in question. > > > > My question is now: How to pass a argument to a given method on an > > object using string template. The string template website did not give > > a clear answer, so maybe it is not even possible, or maybe I just > > completely overlooked it. > > > > Any help is appreciated. > > Hi André. > I am not an ST expert at all, but I really think there is no support for > generic method invocation on ST expressions: the only methods supported > seem to ne related to properties, "à la JavaBean". > > For your use case, I'd change a bit the application logic by providing a > C3 REST controller that would act as a "data conversion proxy" between > the sitemap and the actual REST resource you are currently dealing with. > In this way you could query the external REST resource from the C3 REST > controller body and prepare the data in a format that's suitable for ST. > > Regards. > > -- > Francesco Chicchiriccò > > ASF Member, Apache Cocoon PMC and Apache Syncope PPMC Member > http://people.apache.org/~ilgrosso/ > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
