DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20999>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=20999

#set does not allow to assign nulls---cannot it be changed?

           Summary: #set does not allow to assign nulls---cannot it be
                    changed?
           Product: Velocity
           Version: 1.3.1
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: Enhancement
          Priority: Other
         Component: Source
        AssignedTo: [EMAIL PROTECTED]
        ReportedBy: [EMAIL PROTECTED]


Currently #set does not change $ref if the value is null. To quote manual: "If 
the RHS evaluates to null, it is not assigned to the LHS". It has some 
advantages, but well, it has also disadvantages.

In my concrete case, I have #foreach loop, where I list some items. 
Unfortunatley, the listing (I mean the output) heavily depends on values of 
some fields. Considering I have #foreach $item in $items I have to call 
$item.foo or $item.bar every time I need to check if the value is set or not. 
Instead I'd prefer to #set ($foo = $item.foo) a.s.o. and to use just $foo in 
further processing instead of calling $item getFoo() method all the time---
it's not only about ease of writting, it's also about the time it takes to 
invoke that method, plus the time of what this metod really does (it's not 
always just simple return this.foo statement).

Of course I would not like to break the compatibility of the #set behaviour, 
but I wonder if would be there a way to actually add the possibility to set 
some $ref to null, what would casue #if ($ref) to evaluate as false.

Currently, using #set causes, that if we step on $item.foo that returns null, 
we have $ref set to the value of a previous $item. The workaround is to use 
$item.foo everywhere, but it's not very comfortable. Can it be done something 
about that? Maybe on option in velocity.properties enabling of returning nulls 
or new operator (instead of '=') to assign null values (like ':=' for example).

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to