package org.kairosdb.client.builder.grouper;
import com.google.gson.annotations.SerializedName;
import org.kairosdb.client.builder.Grouper;
import java.util.Arrays;
import java.util.List;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkNotNull;
public class BinGrouper extends Grouper
{
@SerializedName("bins")
private Double[] bins;
public BinGrouper(Double... bins)
{
super("bin");
checkNotNull(bins, "bins cannot be null");
checkArgument(bins.length > 0, "bins cannot be empty");
this.bins = bins;
}
public BinGrouper(List<Double> bins)
{
super("bin");
checkNotNull(bins, "bins cannot be null");
checkArgument(bins.size() > 0, "bins cannot be empty");
this.bins = (Double[]) bins.toArray();
}
public List<Double> getBins()
{
return Arrays.asList(bins);
}
@Override
public boolean equals(Object o)
{
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
if (!super.equals(o)) return false;
BinGrouper that = (BinGrouper) o;
return Arrays.equals(bins, that.bins);
}
@Override
public int hashCode()
{
int result = super.hashCode();
result = 31 * result + Arrays.hashCode(bins);
return result;
}
}