private Histogram histogramForRange(String id, TimeRange range, String lastGroupId) { Histogram result; if( canSearch(range) ){ result = getStorage().loadHistogram(id, range.getFromDate(), range.getToDate(), range.getInstance(), range.getType(), lastGroupId); if( inMemoryInRange(range) && result.isLastHistogramPart() ){ Histogram current = histogramInMemory(id); if( current != null ){ result.getHistogram().addAll(current.getHistogram()); } result.setInfo("Added in-memory data. Original info: " + result.getInfo()); } } else { result = histogramInMemory(id); result.setInfo("in-memory data only. Original info: " + result.getInfo()); } result.setInfo(result.getInfo() + ", " + range.toString() ); return (result != null) ? result : new Histogram(id); }