[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    Re: [Jexl] String concatination
From:       Geir Magnusson Jr <geir () 4quarters ! com>
Date:       2003-12-21 13:13:12
[Download RAW message or body]


On Dec 20, 2003, at 10:22 PM, Robert wrote:

> I actually thought this was in the spec, my fault! I was trying to do  
> string building, which of course didn't work, which lead me to look at  
> the JavaDoc this class says "either integer addition or string  
> concatenation" and the CVS entry says something about string  
> concatenation not working anymore, so I did this quick patch.

> I even tried string literal addition and it doesn't work either. It  
> would be nice so one does have to do ${hello.concat(' world')} to  
> build strings, but I'll understand if it isn't added.

What doesn't work?  I don't understand.

>
> - Robert McIntosh
>
> Geir Magnusson Jr wrote:
>
>> Intresting.  This is not what the JSP EL does.  Not that we really   
>> care, but it's an interesting extension.  It follows Java, I suppose  
>> :)
>> Patch in - lets see what people think.
>> geir
>> On Dec 15, 2003, at 8:55 PM, Robert wrote:
>>> Attached is a patch for the ASTAddNode class that will do a string   
>>> concat if the coercion to a double and long fails.
>>>
>>> Thanks!
>>> Robert McIntosh
>>> Index: ASTAddNode.java
>>> ===================================================================
>>> RCS file:   
>>> /home/cvspublic/jakarta-commons/jexl/src/java/org/apache/commons/ 
>>> jexl/ parser/ASTAddNode.java,v
>>> retrieving revision 1.2
>>> diff -u -r1.2 ASTAddNode.java
>>> --- ASTAddNode.java    17 May 2002 12:13:22 -0000    1.2
>>> +++ ASTAddNode.java    16 Dec 2003 01:47:01 -0000
>>> @@ -119,12 +119,18 @@
>>>          }
>>>
>>>          /*
>>> -         * otherwise to longs with thee!
>>> +         * attempt to use Longs
>>>           */
>>> -
>>> -        Long l = Coercion.coerceLong(left);
>>> -        Long r = Coercion.coerceLong(right);
>>> -
>>> -        return new Long(l.longValue() + r.longValue());
>>> +        try {
>>> +            Long l = Coercion.coerceLong(left);
>>> +            Long r = Coercion.coerceLong(right);
>>> +            return new Long(l.longValue() + r.longValue());
>>> +        }
>>> +        catch( java.lang.NumberFormatException nfe ) {
>>> +            /*
>>> +             * Well, use strings!
>>> +             */
>>> +            return left.toString().concat( right.toString() );
>>> +        }
>>>      }
>>>  }
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-dev-help@jakarta.apache.org
>
>
-- 
Geir Magnusson Jr                                   203-247-1713(m)
geir@4quarters.com


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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic