[ 
https://issues.apache.org/jira/browse/JEXL-151?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14634769#comment-14634769
 ] 

Dmitri Blinov edited comment on JEXL-151 at 7/21/15 8:33 AM:
-------------------------------------------------------------

For now I have managed to overload operators + and - via JexlArithmetic to 
support manipulation of Collection items, it's odd-looking a bit, but works. 
Another case is =~ operator which is implemented inside Interpreter.java and 
since can not be overloaded, but as I see it requires only three lines of code 
to implement

            // try contains on collection
            if (right instanceof Collection<?>) {
               if (left instanceof Collection<?>) 
                  return ((Collection<?>) right).containsAll((Collection<?>) 
left);
               else
                   return ((Collection<?>) right).contains(left);
            }

Can we include it in near future?



was (Author: dmitri_blinov):
For now I have managed to overload operators + and - via JexlArithmetic to 
support manipulation of Collection items, it's odd-looking a bit, but works. 
Another case is =~ operator which is implemented inside Interpreter.java and 
since can not be overloaded, but as I see it requires only three lines of code 
to implement

            // try contains on collection
            if (right instanceof Collection<?>) {
+               if (left instanceof Collection<?>) 
+                  return ((Collection<?>) right).containsAll((Collection<?>) 
left);
+               else
                   return ((Collection<?>) right).contains(left);
            }

Can we include it in near future?


> operators to manipulate j.u.Collection
> --------------------------------------
>
>                 Key: JEXL-151
>                 URL: https://issues.apache.org/jira/browse/JEXL-151
>             Project: Commons JEXL
>          Issue Type: New Feature
>    Affects Versions: 3.0
>            Reporter: Dmitri Blinov
>            Priority: Minor
>             Fix For: Later
>
>
> New operators to add or remove collection items to/from Collection. Operators 
> can be named as += and -= respectively, or any other way. Operator += can be 
> mapped to Collection.addAll(Collection c) if right argument is Collection or 
> to Collection.add(Object o) otherwise. Operator -= can be mapped to 
> Collection.removeAll(Collection c) if right argument is Collection or to 
> Collection.remove(Object o) otherwise. Extend operators =~  (!~) to support 
> CollectionA =~ CollectionB usage, in which case it should map to 
> B.containsAll(A) operation.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to