1 28 package net.sf.jasperreports.crosstabs.xml; 29 30 import net.sf.jasperreports.crosstabs.design.JRDesignCrosstabMeasure; 31 import net.sf.jasperreports.engine.xml.JRBaseFactory; 32 import net.sf.jasperreports.engine.xml.JRXmlConstants; 33 34 import org.xml.sax.Attributes ; 35 36 40 public class JRCrosstabMeasureFactory extends JRBaseFactory 41 { 42 public static final String ATTRIBUTE_name = "name"; 43 public static final String ATTRIBUTE_class = "class"; 44 public static final String ATTRIBUTE_calculation = "calculation"; 45 public static final String ATTRIBUTE_incrementerFactoryClass = "incrementerFactoryClass"; 46 public static final String ATTRIBUTE_percentageOf = "percentageOf"; 47 public static final String ATTRIBUTE_percentageCalculatorClass = "percentageCalculatorClass"; 48 49 public Object createObject(Attributes attributes) 50 { 51 JRDesignCrosstabMeasure measure = new JRDesignCrosstabMeasure(); 52 53 measure.setName(attributes.getValue(ATTRIBUTE_name)); 54 measure.setValueClassName(attributes.getValue(ATTRIBUTE_class)); 55 measure.setIncrementerFactoryClassName(attributes.getValue(ATTRIBUTE_incrementerFactoryClass)); 56 57 String calcAttr = attributes.getValue(ATTRIBUTE_calculation); 58 if (calcAttr != null) 59 { 60 Byte calc = (Byte ) JRXmlConstants.getCalculationMap().get(calcAttr); 61 measure.setCalculation(calc.byteValue()); 62 } 63 64 String percentageAttr = attributes.getValue(ATTRIBUTE_percentageOf); 65 if (percentageAttr != null) 66 { 67 Byte percentageType = (Byte ) JRXmlConstants.getCrosstabPercentageMap().get(percentageAttr); 68 measure.setPercentageOfType(percentageType.byteValue()); 69 } 70 71 String percentageCalcAttr = attributes.getValue(ATTRIBUTE_percentageCalculatorClass); 72 if (percentageCalcAttr != null) 73 { 74 measure.setPercentageCalculatorClassName(percentageCalcAttr); 75 } 76 77 return measure; 78 } 79 } 80 | Popular Tags |