On 10/05/2012 12:05 PM, gelo1234 wrote:

Andre,

In my opinion, if you are dealing with XML data, you should turn your
eyes into XSL[T] instead of ST.

I use ST to create the initial XML from a DTO returned by a REST resource ('EventResource'), like

...
Map<String, Object> map = new HashMap<String, Object>();
EventStatisticsDTO dto = eventFacade_.getStatistics(eventId);
map.put("statistics", dto);
return URLResponseBuilder.newInstance(
                    "servlet:tribc-evt:/event-statistics." + format, map
                    ).build();


The tribc-evt:/event-statistics calls upon the sitemap.
Depending on 'format' (either 'xml' or 'json'), I leave the XML as it is, or I transform the XML to JSON using XSL.

Best,
André



Greetings,
Greg

2012/10/5 André Juffer <[email protected] <mailto:[email protected]>>

    On 10/05/2012 09:30 AM, Francesco Chicchiriccò wrote:

        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".


    Yeah, that's what I thought.



        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.


    OK, I'll have a look at this. Alternatively, I may simply add a
    method to the DTO that returns an XML representation of the DTO.
    With ST, one would use then $statistics.asXml$ or something, but it
    appears that all > and < symbols are replaced with &lt; and &gt;
    which is not what I want of course.

    Thanks,
    Andre


        Regards.



    --
    Andre H. Juffer              | Phone: +358-8-553 1161
    <tel:%2B358-8-553%201161>
    Biocenter Oulu and           | Fax: +358-8-553-1141
    <tel:%2B358-8-553-1141>
    Department of Biochemistry   | Email: [email protected]
    <mailto:[email protected]>
    University of Oulu, Finland  | WWW:
    www.biochem.oulu.fi/__Biocomputing/
    <http://www.biochem.oulu.fi/Biocomputing/>
    StruBioCat                   | WWW: www.strubiocat.oulu.fi
    <http://www.strubiocat.oulu.fi>
    Triacle Biocomputing         | WWW: www.triacle-bc.com
    <http://www.triacle-bc.com>

    ------------------------------__------------------------------__---------
    To unsubscribe, e-mail: users-unsubscribe@cocoon.__apache.org
    <mailto:[email protected]>
    For additional commands, e-mail: [email protected]
    <mailto:[email protected]>




--
Andre H. Juffer              | Phone: +358-8-553 1161
Biocenter Oulu and           | Fax: +358-8-553-1141
Department of Biochemistry   | Email: [email protected]
University of Oulu, Finland  | WWW: www.biochem.oulu.fi/Biocomputing/
StruBioCat                   | WWW: www.strubiocat.oulu.fi
Triacle Biocomputing         | WWW: www.triacle-bc.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to