private void foo(MutableExecutionInfo exec, CellCacheSegmentDeleteEvent event) {
   ++exec.cellCacheSegmentDeleteCount;
   exec.cellCacheSegmentCoordinateSum -= event.coordinateCount;
   switch (event.source) {
     case EXTERNAL:
       ++exec.cellCacheSegmentDeleteViaExternalCount;
       break;
   }
 }
 private void foo(MutableExecutionInfo exec, CellCacheSegmentCreateEvent event) {
   ++exec.cellCacheSegmentCreateCount;
   exec.cellCacheSegmentCoordinateSum += event.coordinateCount;
   exec.cellCacheSegmentCellCount += event.actualCellCount;
   switch (event.source) {
     case ROLLUP:
       ++exec.cellCacheSegmentCreateViaRollupCount;
       break;
     case EXTERNAL:
       ++exec.cellCacheSegmentCreateViaExternalCount;
       break;
     case SQL:
       ++exec.cellCacheSegmentCreateViaSqlCount;
       break;
     default:
       throw Util.unexpected(event.source);
   }
 }