package org.chartsy.main.data; import java.io.Serializable; import java.util.Arrays; import org.chartsy.main.utils.SerialVersion; /** * * @author Viorel */ public class OIDataItem implements Serializable, Comparable<OIDataItem> { private static final long serialVersionUID = SerialVersion.APPVERSION; private long time; private double[] data; public OIDataItem(long time, double... values) { this.time = time; this.data = new double[values.length]; System.arraycopy(values, 0, data, 0, values.length); } public long getTime() { return time; } public void setTime(long time) { this.time = time; } public double[] getValues() { return data; } public double getValue(int index) { if (index < 0 || index >= data.length) return 0; return data[index]; } public void setValue(int index, double value) { if (index < 0 || index >= data.length) return; data[index] = value; } @Override public boolean equals(Object obj) { if (obj == this) return true; if (!(obj instanceof OIDataItem)) return false; OIDataItem that = (OIDataItem) obj; if (getTime() != that.getTime()) return false; if (!Arrays.equals(data, that.getValues())) return false; return true; } @Override public int hashCode() { int hash = 7; hash = 97 * hash + (int) (this.time ^ (this.time >>> 32)); hash = 97 * hash + Arrays.hashCode(this.data); return hash; } @Override public String toString() { StringBuilder sb = new StringBuilder(); sb.append(Long.toString(time)).append(", "); sb.append(Arrays.toString(data)); return sb.toString(); } @Override public int compareTo(OIDataItem item) { return (new Long(getTime())).compareTo(new Long(item.getTime())); } }