package org.apache.solr.schema; /** * distinct统计用类。给namedlist用。 * * @author jian.qin 2012-7-24 */ public class FacetCount { // public String key; public int count = 0; public boolean isDouble = false; public long lastDate = Long.MIN_VALUE; public long firstDate = Long.MAX_VALUE; public double sumDouble = 0; public double maxDouble = Double.NEGATIVE_INFINITY; public double minDouble = Double.POSITIVE_INFINITY; public double lastDouble = Double.NEGATIVE_INFINITY;; public double firstDouble = Double.POSITIVE_INFINITY;; public long sumLong = 0; public long maxLong = Long.MIN_VALUE; public long minLong = Long.MAX_VALUE; public long lastLong = Long.MIN_VALUE; public long firstLong = Long.MAX_VALUE; private double currentDouble = 0; private long currentLong = 0; private long currentDate = 0; public FacetCount(boolean isDouble) { this.isDouble = isDouble; } public void setSum(double v) { currentDouble = v; sumDouble += currentDouble; if (currentDouble > maxDouble) { maxDouble = currentDouble; } else if (currentDouble < minDouble) { minDouble = currentDouble; } } public void setSum(long v) { currentLong = v; sumLong += currentLong; if (currentLong > maxLong) { maxLong = currentLong; } else if (currentLong < minLong) { minLong = currentLong; } } public void setDate(long v) throws java.text.ParseException { currentDate = v; if (isDouble) { if (currentDate > lastDate) { lastDate = currentDate; lastDouble = currentDouble; } else if (currentDate < firstDate) { firstDate = currentDate; firstDouble = currentDouble; } } else { if (currentDate > lastDate) { lastDate = currentDate; lastLong = currentLong; } else if (currentDate < firstDate) { firstDate = currentDate; firstLong = currentLong; } } } }