1 16 17 package org.apache.taglibs.standard.lang.jpath.expression; 18 19 import javax.servlet.jsp.PageContext ; 20 21 import org.apache.taglibs.standard.lang.jpath.adapter.ConversionException; 22 import org.apache.taglibs.standard.lang.jpath.adapter.Convert; 23 import org.apache.taglibs.standard.lang.jpath.adapter.IterationContext; 24 import org.apache.taglibs.standard.lang.jpath.adapter.JSPList; 25 26 33 public class SumFunction extends SimpleNode { 34 35 42 public SumFunction(int id) { 43 super(id); 44 } 45 46 54 public SumFunction(Parser p, int id) { 55 super(p, id); 56 } 57 58 68 public String toNormalizedString() { 69 70 String normalized = ""; 71 72 normalized = "string-length(" + jjtGetChild(0).toNormalizedString() 73 + ")"; 74 75 return normalized; 76 } 77 78 95 public Object evaluate(PageContext pageContext, IterationContext icontext) 96 throws EvaluationException { 97 98 double result = 0; 99 100 try { 101 JSPList arg = 102 Convert.toJSPList(jjtGetChild(0).evaluate(pageContext, 103 icontext)); 104 105 for (int i = 0; i < arg.getLast(); i++) { 106 result = result + Convert.toDouble(arg.next()).doubleValue(); 107 } 108 } catch (ConversionException ce) { 109 throw new EvaluationException(this, ce.getMessage()); 110 } 111 112 return new Double (result); 113 } 114 } 115 | Popular Tags |