docs: protected Map<AbstractColumn, JRDesignVariable> registerChartVariable(ar.com.fdvs.dj.domain.chart.DJChart chart) {
          //FIXME aca hay que iterar por cada columna. Cambiar DJChart para que tome muchas
          JRDesignGroup group = getChartColumnsGroup(chart);
          Map<AbstractColumn, JRDesignVariable> vars = new HashMap<AbstractColumn, JRDesignVariable>();
  
          int serieNum = 0;
          for (Object o : chart.getDataset().getColumns()) {
              AbstractColumn col = (AbstractColumn) o;
  
  
              Class clazz;
  //			try { clazz = Class.forName(col.getValueClassNameForExpression());
  //			} catch (ClassNotFoundException e) {
  //				throw new DJException("Exeption creating chart variable: " + e.getMessage(),e);
  //			}
  
              JRDesignExpression expression = new JRDesignExpression();
              //FIXME Only PropertyColumn allowed?
              if (col instanceof ExpressionColumn) {
                  try {
                      clazz = Class.forName(((ExpressionColumn) col).getExpression().getClassName());
                  } catch (ClassNotFoundException e) {
                      throw new DJException("Exeption creating chart variable: " + e.getMessage(), e);
                  }
  
                  ExpressionColumn expCol = (ExpressionColumn) col;
                  expression.setText(expCol.getTextForExpression());
                  expression.setValueClassName(expCol.getExpression().getClassName());
              } else {
                  try {
                      clazz = Class.forName(((PropertyColumn) col).getColumnProperty().getValueClassName());
                  } catch (ClassNotFoundException e) {
                      throw new DJException("Exeption creating chart variable: " + e.getMessage(), e);
                  }
  
                  expression.setText("$F{" + ((PropertyColumn) col).getColumnProperty().getProperty() + "}");
                  expression.setValueClass(clazz);
              }
  
              JRDesignVariable var = new JRDesignVariable();
              var.setValueClass(clazz);
              var.setExpression(expression);
              var.setCalculation(CalculationEnum.getByValue(chart.getOperation()));
              var.setResetGroup(group);
              var.setResetType(ResetTypeEnum.GROUP);
  
              //use the index as part of the name just because I may want 2
              //different types of chart from the very same column (with the same operation also) making the variables name to be duplicated
              int chartIndex = getReport().getNewCharts().indexOf(chart);
              var.setName("CHART_[" + chartIndex + "_s" + serieNum + "+]_" + group.getName() + "_" + col.getTitle() + "_" + chart.getOperation());
  
              try {
                  getDesign().addVariable(var);
                  vars.put(col, var);
              } catch (JRException e) {
                  throw new LayoutException(e.getMessage(), e);
              }
              serieNum++;
          }
          return vars;
      }