private JRFillVariable addVariable( JRVariable parentVariable, List variableList, JRFillObjectFactory factory) { JRFillVariable variable = factory.getVariable(parentVariable); byte calculation = variable.getCalculation(); switch (calculation) { case JRVariable.CALCULATION_AVERAGE: case JRVariable.CALCULATION_VARIANCE: { JRVariable countVar = createHelperVariable(parentVariable, "_COUNT", JRVariable.CALCULATION_COUNT); JRFillVariable fillCountVar = addVariable(countVar, variableList, factory); variable.setHelperVariable(fillCountVar, JRCalculable.HELPER_COUNT); JRVariable sumVar = createHelperVariable(parentVariable, "_SUM", JRVariable.CALCULATION_SUM); JRFillVariable fillSumVar = addVariable(sumVar, variableList, factory); variable.setHelperVariable(fillSumVar, JRCalculable.HELPER_SUM); break; } case JRVariable.CALCULATION_STANDARD_DEVIATION: { JRVariable varianceVar = createHelperVariable(parentVariable, "_VARIANCE", JRVariable.CALCULATION_VARIANCE); JRFillVariable fillVarianceVar = addVariable(varianceVar, variableList, factory); variable.setHelperVariable(fillVarianceVar, JRCalculable.HELPER_VARIANCE); break; } case JRVariable.CALCULATION_DISTINCT_COUNT: { JRVariable countVar = createDistinctCountHelperVariable(parentVariable); JRFillVariable fillCountVar = addVariable(countVar, variableList, factory); variable.setHelperVariable(fillCountVar, JRCalculable.HELPER_COUNT); break; } } variableList.add(variable); return variable; }
private void checkVariableCalculationReq( JRFillVariable variable, List variableList, JRFillObjectFactory factory) { if (hasVariableCalculationReq(variable, JRVariable.CALCULATION_AVERAGE) || hasVariableCalculationReq(variable, JRVariable.CALCULATION_VARIANCE)) { if (variable.getHelperVariable(JRCalculable.HELPER_COUNT) == null) { JRVariable countVar = createHelperVariable(variable, "_COUNT", JRVariable.CALCULATION_COUNT); JRFillVariable fillCountVar = factory.getVariable(countVar); checkVariableCalculationReq(fillCountVar, variableList, factory); variable.setHelperVariable(fillCountVar, JRCalculable.HELPER_COUNT); } if (variable.getHelperVariable(JRCalculable.HELPER_SUM) == null) { JRVariable sumVar = createHelperVariable(variable, "_SUM", JRVariable.CALCULATION_SUM); JRFillVariable fillSumVar = factory.getVariable(sumVar); checkVariableCalculationReq(fillSumVar, variableList, factory); variable.setHelperVariable(fillSumVar, JRCalculable.HELPER_SUM); } } if (hasVariableCalculationReq(variable, JRVariable.CALCULATION_STANDARD_DEVIATION)) { if (variable.getHelperVariable(JRCalculable.HELPER_VARIANCE) == null) { JRVariable varianceVar = createHelperVariable(variable, "_VARIANCE", JRVariable.CALCULATION_VARIANCE); JRFillVariable fillVarianceVar = factory.getVariable(varianceVar); checkVariableCalculationReq(fillVarianceVar, variableList, factory); variable.setHelperVariable(fillVarianceVar, JRCalculable.HELPER_VARIANCE); } } if (hasVariableCalculationReq(variable, JRVariable.CALCULATION_DISTINCT_COUNT)) { if (variable.getHelperVariable(JRCalculable.HELPER_COUNT) == null) { JRVariable countVar = createDistinctCountHelperVariable(variable); JRFillVariable fillCountVar = factory.getVariable(countVar); checkVariableCalculationReq(fillCountVar, variableList, factory); variable.setHelperVariable(fillCountVar, JRCalculable.HELPER_COUNT); } } variableList.add(variable); }