/**
  * Clones the expression. The expression should be reinitialized after the cloning.
  *
  * <p>Expressions maintain no state, cloning is done at the beginning of the report processing to
  * disconnect the expression from any other object space.
  *
  * @return a clone of this expression.
  * @throws CloneNotSupportedException this should never happen.
  */
 public Object clone() throws CloneNotSupportedException {
   final IndexDataGeneratorFunction o = (IndexDataGeneratorFunction) super.clone();
   o.dataFormula = (FormulaExpression) dataFormula.clone();
   o.pageFunction = (PageFunction) pageFunction.clone();
   return o;
 }