1 16 17 package org.apache.taglibs.standard.lang.jpath.expression; 18 19 import java.math.BigDecimal ; 20 21 import javax.servlet.jsp.PageContext ; 22 23 import org.apache.taglibs.standard.lang.jpath.adapter.ConversionException; 24 import org.apache.taglibs.standard.lang.jpath.adapter.Convert; 25 import org.apache.taglibs.standard.lang.jpath.adapter.IterationContext; 26 27 34 public class DivisionOperator extends SimpleNode { 35 36 43 public DivisionOperator(int id) { 44 super(id); 45 } 46 47 55 public DivisionOperator(Parser p, int id) { 56 super(p, id); 57 } 58 59 69 public String toNormalizedString() { 70 71 String normalized = ""; 72 73 normalized = "(" + jjtGetChild(0).toNormalizedString() + " " 74 + getTokenImage(ParserConstants.DIV) + " " 75 + jjtGetChild(1).toNormalizedString() + ")"; 76 77 return normalized; 78 } 79 80 97 public Object evaluate(PageContext pageContext, IterationContext icontext) 98 throws EvaluationException { 99 100 Double result; 101 102 try { 103 BigDecimal leftSide = new BigDecimal ( 104 Convert.toDouble(jjtGetChild(0).evaluate(pageContext, 105 icontext)).toString()); 106 BigDecimal rightSide = new BigDecimal ( 107 Convert.toDouble(jjtGetChild(1).evaluate(pageContext, 108 icontext)).toString()); 109 110 result = new Double ((leftSide.divide(rightSide, 111 BigDecimal.ROUND_HALF_EVEN)).doubleValue()); 112 } catch (ConversionException ce) { 113 throw new EvaluationException(this, ce.getMessage()); 114 } 115 116 return result; 117 } 118 } 119 | Popular Tags |