001package org.javasimon.callback.quantiles; 002 003/** 004 * Snapshot of {@link Buckets} 005 * 006 * @author gquintana 007 */ 008public class BucketsSample { 009 private final BucketSample[] buckets; 010 /** 011 * Median (50% percentile) 012 */ 013 private final Double median; 014 /** 015 * 90% percentile 016 */ 017 private final Double percentile90; 018 019 public BucketsSample(BucketSample[] buckets, Double median, Double quantile90) { 020 this.buckets = buckets; 021 this.median = median; 022 this.percentile90 = quantile90; 023 } 024 025 public BucketSample[] getBuckets() { 026 return buckets; 027 } 028 029 public Double getMedian() { 030 return median; 031 } 032 033 public Double getPercentile90() { 034 return percentile90; 035 } 036 037 private boolean hasNoBuckets() { 038 return buckets == null || buckets.length == 0; 039 } 040 041 public Integer getMaxCount() { 042 Integer maxCount; 043 if (hasNoBuckets()) { 044 return null; 045 } else { 046 maxCount = 0; 047 for (BucketSample bucket : buckets) { 048 maxCount = Math.max(bucket.getCount(), maxCount); 049 } 050 } 051 return maxCount; 052 } 053 054 public Integer getTotalCount() { 055 Integer totalCount; 056 if (hasNoBuckets()) { 057 return null; 058 } else { 059 totalCount = 0; 060 for (BucketSample bucket : buckets) { 061 totalCount += bucket.getCount(); 062 } 063 } 064 return totalCount; 065 } 066}