commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Dmitri Blinov (JIRA)" <>
Subject [jira] [Created] (JEXL-168) Dedicated operator for String concatenation
Date Fri, 24 Jul 2015 11:25:04 GMT
Dmitri Blinov created JEXL-168:

             Summary: Dedicated operator for String concatenation
                 Key: JEXL-168
             Project: Commons JEXL
          Issue Type: Improvement
            Reporter: Dmitri Blinov
            Priority: Minor
             Fix For: 3.0

While overloaded "+" operator basically works with Strings in many cases, it works with them
in unpredictable manner, for example, if we try to concatenate two parts of IP address with
expression "127.0" + "0.1" it will give us the result 127.1 by successfully trying first to
convert both operands to numbers and perform addtion. In generic algorithm that combines two
parts of some code from database it is hard to say what characters those codes might be consist
of, and when this algorithm will eventually break. I understand that this syntax has neverthelless
a long history, and changing its behaviour may break many legacy applications. And via the
extension of JexlArithmetic we can override *add* method to support different priority for
Strings, but that just means that default implementation of the very basic operation is not
ideal. In my case I consider refraining from usage of "+" for Strings altogether and overriding
some other operator like "|", with less side effects, but anyway constructs like 127 | 1 will
divert to original implementation. So I suggest that we could have a dedicated operator for
concatenation, like for example in "EL 3.0" they reserved "+=" for this purpose, and regardless
of types of operands it will convert to strings both parts and return concatenation.

This message was sent by Atlassian JIRA

View raw message