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 AdditionOperator extends SimpleNode { 35 36 43 public AdditionOperator(int id) { 44 super(id); 45 } 46 47 55 public AdditionOperator(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.PLUS) + " " 75 + jjtGetChild(1).toNormalizedString() + ")"; 76 77 return normalized; 78 } 79 80 99 public Object evaluate(PageContext pageContext, IterationContext icontext) 100 throws EvaluationException { 101 102 Double result; 103 104 try { 105 BigDecimal leftSide = new BigDecimal ( 106 Convert.toDouble(jjtGetChild(0).evaluate(pageContext, 107 icontext)).toString()); 108 BigDecimal rightSide = new BigDecimal ( 109 Convert.toDouble(jjtGetChild(1).evaluate(pageContext, 110 icontext)).toString()); 111 112 result = new Double ((leftSide.add(rightSide)).doubleValue()); 113 } catch (ConversionException ce) { 114 throw new EvaluationException(this, ce.getMessage()); 115 } 116 117 return result; 118 } 119 } 120 | Popular Tags |