package com.linkedin.thirdeye.dashboard.views;
import java.util.HashSet;
import java.util.Set;
import com.linkedin.thirdeye.client.comparison.Row;
public class TimeBucket implements Comparable<TimeBucket> {
long currentStart;
long currentEnd;
long baselineStart;
long baselineEnd;
public TimeBucket() {
}
public TimeBucket(long currentStart, long currentEnd, long baselineStart, long baselineEnd) {
super();
this.currentStart = currentStart;
this.currentEnd = currentEnd;
this.baselineStart = baselineStart;
this.baselineEnd = baselineEnd;
}
public long getCurrentStart() {
return currentStart;
}
public void setCurrentStart(long currentStart) {
this.currentStart = currentStart;
}
public long getCurrentEnd() {
return currentEnd;
}
public void setCurrentEnd(long currentEnd) {
this.currentEnd = currentEnd;
}
public long getBaselineStart() {
return baselineStart;
}
public void setBaselineStart(long baselineStart) {
this.baselineStart = baselineStart;
}
public long getBaselineEnd() {
return baselineEnd;
}
public void setBaselineEnd(long baselineEnd) {
this.baselineEnd = baselineEnd;
}
@Override
public int compareTo(TimeBucket that) {
return Long.compare(this.getCurrentStart(), that.getCurrentStart());
}
@Override
public String toString() {
return String.format("%s-%s %s-%s", baselineStart, baselineEnd, currentStart, currentEnd);
}
@Override
public int hashCode() {
return toString().hashCode();
}
@Override
public boolean equals(Object obj) {
TimeBucket that = (TimeBucket) obj;
return this.baselineStart == that.baselineStart && this.baselineEnd == that.baselineEnd
&& this.currentStart == that.currentStart && this.currentEnd == that.currentEnd;
}
public static TimeBucket fromRow(Row row) {
TimeBucket bucket = new TimeBucket();
bucket.setBaselineStart(row.getBaselineStart().getMillis());
bucket.setBaselineEnd(row.getBaselineEnd().getMillis());
bucket.setCurrentStart(row.getCurrentStart().getMillis());
bucket.setCurrentEnd(row.getCurrentEnd().getMillis());
return bucket;
}
public static void main(String[] args) {
Set<TimeBucket> set = new HashSet<>();
set.add(new TimeBucket(1, 2, 3, 4));
set.add(new TimeBucket(1, 2, 3, 4));
System.out.println(set);
}
}