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]