/** * Checks if the variable name is suitable for the current expression context. * * @param variable the variable to validate */ @Check public void checkVariableName(JRVariableObj variable) { ExpressionContext currExpContext = ExpressionEditorSupportUtil.safeGetCurrentExpressionContext(); List<JRVariable> allVariables = ExpressionContextUtils.getAllDatasetsVariables(currExpContext); for (JRVariable v : allVariables) { if (("{" + v.getName() + "}").equals(variable.getBracedIdentifier())) return; //$NON-NLS-1$ //$NON-NLS-2$ } List<JRVariable> allCrosstabsVariables = ExpressionContextUtils.getAllCrosstabsVariables(currExpContext); for (JRVariable v : allCrosstabsVariables) { if (("{" + v.getName() + "}").equals(variable.getBracedIdentifier())) return; //$NON-NLS-1$ //$NON-NLS-2$ } error( Messages.JavaJRExpressionJavaValidator_VariableNotFoundInContextError, variable, JavaJRExpressionPackage.Literals.JR_VARIABLE_OBJ__BRACED_IDENTIFIER, JavaJRExpressionPackage.JR_VARIABLE_OBJ__BRACED_IDENTIFIER); }
private JRVariable createHelperVariable( JRVariable variable, String nameSuffix, byte calculation) { JRDesignVariable helper = new JRDesignVariable(); helper.setName(variable.getName() + nameSuffix); helper.setValueClassName(variable.getValueClassName()); helper.setIncrementerFactoryClassName(variable.getIncrementerFactoryClassName()); helper.setResetType(variable.getResetType()); helper.setResetGroup(variable.getResetGroup()); helper.setIncrementType(variable.getIncrementType()); helper.setIncrementGroup(variable.getIncrementGroup()); helper.setCalculation(calculation); helper.setSystemDefined(true); helper.setExpression(variable.getExpression()); return helper; }
private JRVariable createDistinctCountHelperVariable(JRVariable variable) { JRDesignVariable helper = new JRDesignVariable(); helper.setName(variable.getName() + "_DISTINCT_COUNT"); helper.setValueClassName(variable.getValueClassName()); helper.setIncrementerFactoryClassName(JRDistinctCountIncrementerFactory.class.getName()); helper.setResetType(JRVariable.RESET_TYPE_REPORT); if (variable.getIncrementType() != JRVariable.RESET_TYPE_NONE) helper.setResetType(variable.getIncrementType()); helper.setResetGroup(variable.getIncrementGroup()); helper.setCalculation(JRVariable.CALCULATION_NOTHING); helper.setSystemDefined(true); helper.setExpression(variable.getExpression()); return helper; }
private boolean hasVariableCalculationReq(JRVariable var, byte calculation) { return variableCalculationReqs.contains(new VariableCalculationReq(var.getName(), calculation)); }