/**
  * Gets the buffer/cache for values. Values set in the buffer will be applied to the target
  * dataset when the transition takes place.
  *
  * @return
  */
 public XYMultipleSeriesDataset getBuffer() {
   if (datasetCache == null) {
     datasetCache = new XYMultipleSeriesDataset();
     for (int i = 0; i < dataset.getSeriesCount(); i++) {
       datasetCache.addSeries(new XYSeries(dataset.getSeriesAt(i).getTitle()));
     }
     seriesTransitions = new XYSeriesTransition[dataset.getSeries().length];
     for (int i = 0; i < seriesTransitions.length; i++) {
       seriesTransitions[i] = new XYSeriesTransition(getChart(), dataset.getSeriesAt(i));
       seriesTransitions[i].setBuffer(datasetCache.getSeriesAt(i));
     }
   }
   return datasetCache;
 }