  public MatrixData data (@PathVariable ("id") String id,
                          @RequestParam (value = "startRow", required = false) Integer startRow,
                          @RequestParam (value = "endRow", required = false) Integer endRow,
                          @RequestParam (value = "startColumn", required = false) Integer startColumn,
                          @RequestParam (value = "endColumn", required = false) Integer endColumn) throws HeatmapNotFoundException {
    return (startRow == null || endRow == null || startColumn == null || endColumn == null)
                                                                                           ? heatmaps.get (id)
                                                                                                     .getData (0,
                                                                                                               MAX_VALUE,
                                                                                                               0,
                                                                                                               MAX_VALUE)
                                                                                           : heatmaps.get (id)
                                                                                                     .getData (startRow,
                                                                                                               endRow,
                                                                                                               startColumn,
                                                                                                               endColumn);
  }

  public MatrixData data (@PathVariable ("id") String id,
                          @RequestParam (value = "startRow", required = false) Integer startRow,
                          @RequestParam (value = "endRow", required = false) Integer endRow,
                          @RequestParam (value = "startColumn", required = false) Integer startColumn,
                          @RequestParam (value = "endColumn", required = false) Integer endColumn) throws HeatmapNotFoundException {
    if (log.isDebugEnabled ())
      log.debug ("Serving request for data for heatmap "
                 + id + " starting row " + startRow + " ending row " + endRow + " startingColumn " + startColumn
                 + " ending column " + endColumn);
    return (startRow == null || endRow == null || startColumn == null || endColumn == null)
                                                                                           ? heatmaps.get (id)
                                                                                                     .getData (0,
                                                                                                               MAX_VALUE,
                                                                                                               0,
                                                                                                               MAX_VALUE)
                                                                                           : heatmaps.get (id)
                                                                                                     .getData (startRow,
                                                                                                               endRow,
                                                                                                               startColumn,
                                                                                                               endColumn);
  }
