velocity-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergiu Dumitriu <sergiu.dumit...@gmail.com>
Subject Re: [tools] Replacement for ListTool?
Date Thu, 26 Jun 2014 21:40:40 GMT
Oh, I misread, I thought that you want to distinguish between arrays and
lists, but you want to detect both arrays and lists from any other type
of objects. Then yes, you need to check if the object is an instance of
java.util.List.

Alternatively, a simpler, but not 100% safe check is to check if calling
iterator() on the object returns something or not. This will detect any
iterable thing, not just lists, plus any custom object that happens to
have an unrelated iterator() method.

On 06/26/2014 05:32 PM, Christopher Schultz wrote:
> Sergiu,
> 
> On 6/26/14, 3:34 PM, Sergiu Dumitriu wrote:
>> This should work without any tools:
>>
>> $bundleType.class.getName().startsWith('[')
> 
> Oh, that's cool.. but it doesn't check for java.util.List (I'd need to
> either do the ugliness I have below, or check for each expected List
> implementation which of course makes no sense).
> 
> Any other suggestions? If not, I'll do what I have below plus checking
> against '['.
> 
> Thanks,
> -chris
> 
>>
>> On 06/26/2014 03:27 PM, Christopher Schultz wrote:
>>> All,
>>>
>>> ListTool is marked as deprecated because Velocity 1.6 and later treat
>>> arrays and lists as first-class collections and can perform appropriate
>>> operations on them.
>>>
>>> One thing it's not easy to do is determine if an object is an List or an
>>> Array.
>>>
>>> I have something hacked-together using ClassTool like this:
>>>
>>> #set($bundleType=$class.inspect($bundle).type)
>>> #if($bundleType &&
>>> $class.inspect('java.util.List').type.isAssignableFrom($bundleType))
>>>
>>> [the $bundle object is a List]
>>> #end
>>>
>>> But it's kind of verbose, plus I need to check to see if it's an array
>>> as well.
>>>
>>> Any suggestions using existing tools?
>>>
>>> Thanks,
>>> -chris
>>>
>>
>>
> 


-- 
Sergiu Dumitriu
http://purl.org/net/sergiu

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@velocity.apache.org
For additional commands, e-mail: user-help@velocity.apache.org


Mime
View raw message