/**
  * 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);
 }
コード例 #2
0
  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;
  }
コード例 #3
0
  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;
  }
コード例 #4
0
 private boolean hasVariableCalculationReq(JRVariable var, byte calculation) {
   return variableCalculationReqs.contains(new VariableCalculationReq(var.getName(), calculation));
 }