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

Henri Biestro commented on JEXL-428:
------------------------------------

The difficulty might be in respecting the expectation :{code}compare(x, y) == 
-compare(y, x){code}

The lengthy workaround would be to implement the operator methods in the 
JexlArithmetic with the intended signature (public boolean lessThan(XuClass xu, 
String right); public boolean greaterThan(String right, XuClass xu); etc.).
As an improvement, it could be possible to expose a compare operator 
(JexlOperator.COMPARE) to only have to implement 2 methods.

Wdyt ?

> Make Comparable object high priority while comparing
> ----------------------------------------------------
>
>                 Key: JEXL-428
>                 URL: https://issues.apache.org/jira/browse/JEXL-428
>             Project: Commons JEXL
>          Issue Type: Improvement
>            Reporter: Xu Pengcheng
>            Priority: Major
>
> [https://github.com/apache/commons-jexl/blob/master/src/main/java/org/apache/commons/jexl3/JexlArithmetic.java#L787]
>  
> I defined a Class with implemented Comparable interface, when compare it with 
> a string object, engine does not call the compareTo method but compares by 
> string value.
>  
> At JexlArithmetic.java L787, if one of the left/right value is string type, 
> then compares by string value, I think if the left value is Comparable and 
> not String type, using left object's compareTo method first makes more sense.
> Thanks!
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to