1 13 package com.tonbeller.jpivot.tags; 14 15 import com.tonbeller.jpivot.olap.model.OlapModel; 16 import com.tonbeller.jpivot.olap.model.impl.ScalarOlapModel; 17 import com.tonbeller.wcf.controller.RequestContext; 18 import com.tonbeller.wcf.expr.ExprUtils; 19 20 23 public class ScalarOlapModelTag extends OlapModelTag { 24 25 String value; 26 String formattedValue; 27 String caption; 28 29 protected OlapModel getOlapModel(RequestContext context) throws Exception { 30 ScalarOlapModel som = new ScalarOlapModel(); 31 som.setValue(evalNum(context, value)); 32 som.setFormattedValue(evalStr(context, formattedValue)); 33 som.setCaption(caption); 34 return som; 35 } 36 37 private String evalStr(RequestContext context, String el) { 38 Object obj = eval(context, el); 39 if (obj == null) 40 return null; 41 return String.valueOf(obj); 42 } 43 44 private Number evalNum(RequestContext context, String el) { 45 Object obj = eval(context, el); 46 if (obj instanceof Number ) 47 return (Number )obj; 48 return new Double (String.valueOf(obj)); 49 } 50 51 private Object eval(RequestContext context, String el) { 52 if (ExprUtils.isExpression(el)) 53 return context.getModelReference(el); 54 return el; 55 } 56 57 public void setCaption(String caption) { 58 this.caption = caption; 59 } 60 public void setFormattedValue(String formattedValue) { 61 this.formattedValue = formattedValue; 62 } 63 public void setValue(String value) { 64 this.value = value; 65 } 66 67 } | Popular Tags |