public SpreadsheetResultCalculator(
      Spreadsheet spreadsheet,
      IDynamicObject targetModule,
      Object[] params,
      IRuntimeEnv env,
      SpreadsheetTraceObject spreadsheetTraceObject) {
    super();

    this.spreadsheet = spreadsheet;
    this.targetModule = targetModule;
    this.params = params;
    this.env = env;
    this.results = new Object[spreadsheet.getHeight()][spreadsheet.getWidth()];
    this.spreadsheetTraceObject = spreadsheetTraceObject;
  }
  public SpreadsheetResultCalculator(
      Spreadsheet spreadsheet,
      IDynamicObject targetModule,
      Object[] params,
      IRuntimeEnv env,
      Object[][] preCalculatedResult) {
    super();

    this.spreadsheet = spreadsheet;
    this.targetModule = targetModule;
    this.params = params;
    this.env = env;
    if (preCalculatedResult == null)
      this.results = new Object[spreadsheet.getHeight()][spreadsheet.getWidth()];
    else this.results = clonePrecalculatedResults(preCalculatedResult);
  }
 public final int height() {
   return spreadsheet.getHeight();
 }