Re: "addition" of lists

Sergiu Dumitriu <[email protected]>
Newsgroups gmane.comp.jakarta.velocity.user
Message-ID <[email protected]>
On 05/24/2013 02:37 PM, [email protected] wrote:
> Hey Sergiu! A big pleasure to meet you here! Thanks for your answer. Please, see below...
> 
>> ________________________________________
>> From: Sergiu Dumitriu [[email protected]]
>> Sent: 24 May 2013 19:54
>> To: [email protected]
>> Subject: Re: "addition" of lists
>>
>> On 05/24/2013 01:50 PM, [email protected] wrote:
>>> Hi!
>>>
>>> Probably I'll use the wrong semantic, but I'll try to explain the very simple result I want
>>> to get with Velocity: given two lists of results, let's me call them $list1 and $list2,
>>> I want to get a new list, let's call it $listTotal, including all item in $list1 and $list2.
>>>
>>> Please, how could I do that? What is the correct expression I must it in Velocity's World for his operation?
>>>
>>> Thank you so much for your help!
>>>
>>> Ricardo
>>>
>>
>> Hey Ricardo,
>>
>> If those are indeed lists, they should support all the methods that
>> Java's List class provides [1], including addAll [2], so this should work:
>>
>> #set ($listTotal = [])
>> #set ($discard = $listTotal.addAll($list1))
>> #set ($discard = $listTotal.addAll($list2))
>>
> 
> It worked! They are indeed lists :-) But I've not a clear idea yet about what is list, what an array, what a collection, what any sort of collection... Please, could you provide me a good reference to keep trying to understand what I feel like a must to leverage the power of Velocity and, of course, the nice team XWiki/Velocity?
> 
> These two lists come from a for you well known lines of code. Something like this...
> 
> #set ($xwqlquery = "where doc.translation = 0 and doc.creationDate < '2013-01-01' and doc.parent like '%$doc.title%' and doc.fullName NOT IN ($nicestr0) order by doc.object(XWiki.XWikiUsers).last_name")
> #set ($results = $services.query.xwql($xwqlquery).execute())
> 
> Please, is it possible to check $results if is it a list? For instance, I guessed it is a list because I can apply size() to it. Is this a right guess?

You can always check the actual class of a variable with:

$var.class

This will print the classname, which will correspond to a real Java
class (most likely an ArrayList).

You can then look up that class in your favorite Java IDE and look at
its hierarchy: which interfaces does it implement (List, Set or Map),
what methods does it have, etc.

One exception is that arrays (like String[]) are treated as lists by
Velocity, so they will also support all the List methods, even though in
Java they don't.

> Thank you so much for your help!
> 
>>
>> [1] http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html
>> [2] http://docs.oracle.com/javase/1.5.0/docs/api/java/util/List.html#addAll%28java.util.Collection%29
> 
> Thanks!


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.