You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2006/02/14 07:04:59 UTC

svn commit: r377636 - /jakarta/commons/proper/jexl/trunk/src/java/org/apache/commons/jexl/parser/ASTUnaryMinusNode.java

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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org