You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by Jason Pyeron <jp...@pdinc.us> on 2011/06/07 19:02:13 UTC

I am working on extending the iterator tag and I am requesting opinions

Currently the iterator component searched the stack for the iteration target,
then while iterating it pushes the value to the stack.

In my extension I have support for pre and post traversal of a tree structure.
The pre and post selectors are OGNL expressions. As such it is needed to have
the current node in a value stack during resolution of left/pre and right/post
children for a give node.

The question is begged should it be pushed on for evaluation and then popped off
after or should it be pushed on before the current value (in between the current
value and the "action")?

My gut is telling me that push and pop will result in the least surprise for a
developer using it, as there is no possibility of the node masking an action,
but this prevents access of the node from inside the iterator except through
some "status" like option.

-Jason

--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Jason Pyeron                      PD Inc. http://www.pdinc.us -
- Principal Consultant              10 West 24th Street #100    -
- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: [struts-dev] Re: I am working on extending the iterator tag and I am requesting opinions

Posted by Dave Newton <da...@gmail.com>.
IMO that's too much work for the presentation layer; if someone is
passing nested arrays and expecting the ability to get arbitrary
traversals using OGNL they're barking up the wrong tree.

Dave

On Fri, Jul 8, 2011 at 9:18 AM, Jason Pyeron <jp...@pdinc.us> wrote:
>> -----Original Message-----
>> From: Lukasz Lenart [mailto:lukasz.lenart@googlemail.com]
>> Sent: Friday, July 08, 2011 6:16
>> To: Struts Developers List
>> Subject: [struts-dev] Re: I am working on extending the
>> iterator tag and I am requesting opinions
>>
>> Any news on that ?
>
> Object navigation works nicely, we are using it in production on 2 projects
> right now.
> I am still writing unit tests.
>
> What does not work (because it is ill defined) is navigation on arrays of
> arrays.
>
> Ex: [1,2,3,[4,5],6,[7,[8,9]]]
>
> How should that be navigated? My intended solution is to allow the use of a
> lambda expression in OGNL to "select" nodes to traverse. But I have not been
> able to write a working lambda expression for the above traversal to iterate as
> 1,2,3,4,5,6,7,8,9
>
> When I get that done it will be bulletproof.
>
> -Jason
>
>>
>>
>> Regards
>> --
>> Lukasz
>> + 48 606 323 122 http://www.lenart.org.pl/
>> Warszawa JUG conference - Confitura http://confitura.pl/
>>
>>
>> 2011/6/7 Jason Pyeron <jp...@pdinc.us>:
>> > Currently the iterator component searched the stack for the
>> iteration
>> > target, then while iterating it pushes the value to the stack.
>> >
>> > In my extension I have support for pre and post traversal
>> of a tree structure.
>> > The pre and post selectors are OGNL expressions. As such it
>> is needed
>> > to have the current node in a value stack during resolution of
>> > left/pre and right/post children for a give node.
>> >
>> > The question is begged should it be pushed on for
>> evaluation and then
>> > popped off after or should it be pushed on before the current value
>> > (in between the current value and the "action")?
>> >
>> > My gut is telling me that push and pop will result in the least
>> > surprise for a developer using it, as there is no
>> possibility of the
>> > node masking an action, but this prevents access of the node from
>> > inside the iterator except through some "status" like option.
>> >
>> > -Jason
>> >
>> > --
>> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>> > -                                                               -
>> > - Jason Pyeron                      PD Inc. http://www.pdinc.us -
>> > - Principal Consultant              10 West 24th Street #100    -
>> > - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
>> > -                                                               -
>> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
>> > This message is copyright PD Inc, subject to license 20080407P00.
>> >
>> >
>> >
>> >
>> ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org For
>> > additional commands, e-mail: dev-help@struts.apache.org
>> >
>> >
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org For
>> additional commands, e-mail: dev-help@struts.apache.org
>>
>>
>
>
> --
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> -                                                               -
> - Jason Pyeron                      PD Inc. http://www.pdinc.us -
> - Principal Consultant              10 West 24th Street #100    -
> - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
> -                                                               -
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> This message is copyright PD Inc, subject to license 20080407P00.
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


RE: [struts-dev] Re: I am working on extending the iterator tag and I am requesting opinions

Posted by Jason Pyeron <jp...@pdinc.us>.
> -----Original Message-----
> From: Lukasz Lenart [mailto:lukasz.lenart@googlemail.com] 
> Sent: Friday, July 08, 2011 6:16
> To: Struts Developers List
> Subject: [struts-dev] Re: I am working on extending the 
> iterator tag and I am requesting opinions
> 
> Any news on that ?

Object navigation works nicely, we are using it in production on 2 projects
right now.
I am still writing unit tests.

What does not work (because it is ill defined) is navigation on arrays of
arrays.

Ex: [1,2,3,[4,5],6,[7,[8,9]]]

How should that be navigated? My intended solution is to allow the use of a
lambda expression in OGNL to "select" nodes to traverse. But I have not been
able to write a working lambda expression for the above traversal to iterate as
1,2,3,4,5,6,7,8,9

When I get that done it will be bulletproof.

-Jason

> 
> 
> Regards
> --
> Lukasz
> + 48 606 323 122 http://www.lenart.org.pl/
> Warszawa JUG conference - Confitura http://confitura.pl/
> 
> 
> 2011/6/7 Jason Pyeron <jp...@pdinc.us>:
> > Currently the iterator component searched the stack for the 
> iteration 
> > target, then while iterating it pushes the value to the stack.
> >
> > In my extension I have support for pre and post traversal 
> of a tree structure.
> > The pre and post selectors are OGNL expressions. As such it 
> is needed 
> > to have the current node in a value stack during resolution of 
> > left/pre and right/post children for a give node.
> >
> > The question is begged should it be pushed on for 
> evaluation and then 
> > popped off after or should it be pushed on before the current value 
> > (in between the current value and the "action")?
> >
> > My gut is telling me that push and pop will result in the least 
> > surprise for a developer using it, as there is no 
> possibility of the 
> > node masking an action, but this prevents access of the node from 
> > inside the iterator except through some "status" like option.
> >
> > -Jason
> >
> > --
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> > -                                                               -
> > - Jason Pyeron                      PD Inc. http://www.pdinc.us -
> > - Principal Consultant              10 West 24th Street #100    -
> > - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
> > -                                                               -
> > -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> > This message is copyright PD Inc, subject to license 20080407P00.
> >
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org For 
> > additional commands, e-mail: dev-help@struts.apache.org
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org For 
> additional commands, e-mail: dev-help@struts.apache.org
> 
> 


--
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
-                                                               -
- Jason Pyeron                      PD Inc. http://www.pdinc.us -
- Principal Consultant              10 West 24th Street #100    -
- +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
-                                                               -
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
This message is copyright PD Inc, subject to license 20080407P00.

 


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org


Re: I am working on extending the iterator tag and I am requesting opinions

Posted by Łukasz Lenart <lu...@googlemail.com>.
Any news on that ?


Regards
-- 
Łukasz
+ 48 606 323 122 http://www.lenart.org.pl/
Warszawa JUG conference - Confitura http://confitura.pl/


2011/6/7 Jason Pyeron <jp...@pdinc.us>:
> Currently the iterator component searched the stack for the iteration target,
> then while iterating it pushes the value to the stack.
>
> In my extension I have support for pre and post traversal of a tree structure.
> The pre and post selectors are OGNL expressions. As such it is needed to have
> the current node in a value stack during resolution of left/pre and right/post
> children for a give node.
>
> The question is begged should it be pushed on for evaluation and then popped off
> after or should it be pushed on before the current value (in between the current
> value and the "action")?
>
> My gut is telling me that push and pop will result in the least surprise for a
> developer using it, as there is no possibility of the node masking an action,
> but this prevents access of the node from inside the iterator except through
> some "status" like option.
>
> -Jason
>
> --
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> -                                                               -
> - Jason Pyeron                      PD Inc. http://www.pdinc.us -
> - Principal Consultant              10 West 24th Street #100    -
> - +1 (443) 269-1555 x333            Baltimore, Maryland 21218   -
> -                                                               -
> -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
> This message is copyright PD Inc, subject to license 20080407P00.
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
> For additional commands, e-mail: dev-help@struts.apache.org
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org