package org.yamcs.yarch; import java.util.Comparator; import com.google.common.primitives.UnsignedBytes; /** * Stores a record in the histogram database. * * A record is composed of * - value * - start * - stop * - num tuples * Note: this class has a natural ordering that is inconsistent with equals. * @author nm * */ public class HistogramRecord implements Comparable<HistogramRecord>{ final byte[] columnv; final long start; final long stop; final int num; static final Comparator<byte[]>comparator=UnsignedBytes.lexicographicalComparator(); public HistogramRecord(byte[] columnv, long start, long stop, int num) { this.columnv=columnv; this.start=start; this.stop=stop; this.num=num; } @Override public int compareTo(HistogramRecord p) { if(start!=p.start)return Long.signum(start-p.start); return comparator.compare(columnv, p.columnv); } @Override public String toString() { return String.format("time:(%d,%d), nump: %d", start, stop, num); } public byte[] getColumnv() { return columnv; } public long getStart() { return start; } public long getStop() { return stop; } public int getNumTuples() { return num; } }