Author: dion
Date: Mon Feb 13 22:04:58 2006
New Revision: 377636

URL: http://svn.apache.org/viewcvs?rev=377636&view=rev
Log:
Add support for Byte, Short, Long, Float and Double to UnaryMinus operation.
Integer was previously the only one supported.

Modified:
    
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java

Modified: 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java
URL: 
http://svn.apache.org/viewcvs/jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java?rev=377636&r1=377635&r2=377636&view=diff
==============================================================================
--- 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java
 (original)
+++ 
jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java
 Mon Feb 13 22:04:58 2006
@@ -47,11 +47,37 @@
     {
         Object val = ((SimpleNode) jjtGetChild(0)).value(jc);
 
-        if (val instanceof Integer)
+        if (val instanceof Byte)
         {
-            return new Integer(- ( ((Integer) val).intValue() ) );
+               byte valueAsByte = ((Byte) val).byteValue();
+            return new Byte((byte) -valueAsByte);
+        } 
+        else if (val instanceof Short)
+        {
+               short valueAsShort = ((Short) val).shortValue(); 
+            return new Short((short) -valueAsShort);
+        }
+        else if (val instanceof Integer)
+        {
+               int valueAsInt = ((Integer) val).intValue();
+            return new Integer(-valueAsInt);
+        }
+        else if (val instanceof Long)
+        {
+               long valueAsLong = ((Long) val).longValue();
+            return new Long(-valueAsLong);
+        }
+        else if (val instanceof Float)
+        {
+               float valueAsFloat = ((Float) val).floatValue(); 
+               return new Float( -valueAsFloat  );
+        }
+        else if (val instanceof Double)
+        {
+               double valueAsDouble = ((Double) val).doubleValue();  
+               return new Double( -valueAsDouble );
         }
-        throw new Exception("expression not integer valued");
+        throw new Exception("expression not a number");
     }
 }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to