diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpDivide.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpDivide.java index 19bd86cce82..07aac10f382 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpDivide.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpDivide.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -25,6 +25,7 @@ import org.springframework.expression.spel.ExpressionState; * Implements division operator. * * @author Andy Clement + * @author Juergen Hoeller * @since 3.0 */ public class OpDivide extends Operator { @@ -42,14 +43,16 @@ public class OpDivide extends Operator { Number op2 = (Number) operandTwo; if (op1 instanceof Double || op2 instanceof Double) { return new TypedValue(op1.doubleValue() / op2.doubleValue()); - } else if (op1 instanceof Long || op2 instanceof Long) { + } + else if (op1 instanceof Long || op2 instanceof Long) { return new TypedValue(op1.longValue() / op2.longValue()); - } else { // TODO what about non-int result of the division? + } + else { + // TODO what about non-int result of the division? return new TypedValue(op1.intValue() / op2.intValue()); } } - Object result = state.operate(Operation.DIVIDE, operandOne, operandTwo); - return new TypedValue(result); + return state.operate(Operation.DIVIDE, operandOne, operandTwo); } } diff --git a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java index e4565e211ad..050c514b977 100644 --- a/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java +++ b/org.springframework.expression/src/main/java/org/springframework/expression/spel/ast/OpMultiply.java @@ -1,5 +1,5 @@ /* - * Copyright 2002-2009 the original author or authors. + * Copyright 2002-2012 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,34 +22,38 @@ import org.springframework.expression.TypedValue; import org.springframework.expression.spel.ExpressionState; /** - * Implements the multiply operator. Conversions and promotions: - * http://java.sun.com/docs/books/jls/third_edition/html/conversions.html Section 5.6.2: + * Implements the {@code multiply} operator. * - *
If any of the operands is of a reference type, unboxing conversion (¤5.1.8) is performed. Then:
+ *
Conversions and promotions are handled as defined in + * Section 5.6.2 + * of the Java Language Specification: + * + *
If any of the operands is of a reference type, unboxing conversion (Section 5.1.8) is performed. Then:
* If either operand is of type double, the other is converted to double.
* Otherwise, if either operand is of type float, the other is converted to float.
* Otherwise, if either operand is of type long, the other is converted to long.
* Otherwise, both operands are converted to type int.
*
- *
- * * @author Andy Clement + * @author Sam Brannen * @since 3.0 */ public class OpMultiply extends Operator { - public OpMultiply(int pos, SpelNodeImpl... operands) { super("*", pos, operands); } /** - * Implements multiply directly here for some types of operand, otherwise delegates to any registered overloader for - * types it does not recognize. Supported types here are: + * Implements the {@code multiply} operator directly here for certain types + * of supported operands and otherwise delegates to any registered overloader + * for types not supported here. + *
Supported operand types: *