[
https://issues.apache.org/jira/browse/JEXL-266?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16582711#comment-16582711
]
Dmitri Blinov commented on JEXL-266:
------------------------------------
If I return JexlEngine.TRY_FAILED from my overload, JEXL will call its internal
default implementation, but it will be too late for me to wrap the result of
default implementation with MyIterator implementation that will be supported by
remove() function inside the loop, since my overload will not be called again
> Allow to remove an element from iterator collection within for-loops
> --------------------------------------------------------------------
>
> Key: JEXL-266
> URL: https://issues.apache.org/jira/browse/JEXL-266
> Project: Commons JEXL
> Issue Type: New Feature
> Affects Versions: 3.1
> Environment: I have created a patch as initial implementation for
> this new feature, please see github pull request here
> [pr#5|https://github.com/apache/commons-jexl/pull/5]. I whould be very
> grateful if this could be interesting for the community and included in
> master branch. Thanks in advance!
> Reporter: Dmitri Blinov
> Priority: Minor
>
> The for-loop in JEXL provides a convenient way to iterate over different
> types of collections, however, its not possible for a script writer to
> utilize underlying
> {code:java}
> iterator.remove(){code}
> method within such a loop. The proposal is to introduce new {{remove}}
> statement which should be used within for-loops and should internally call
> {{iterator.remove()}} method and skip the loop to the next element;
> For example, the following code should remove items {{1,2,3}} from set and
> return value {{3}}.
> {code:java}
> var set = {1,2,3,4,5,6}; for (var item : set) if (item <= 3) remove; return
> size(set)
> {code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)