package org.activityinfo.legacy.shared.impl.pivot.calc;
import org.activityinfo.legacy.shared.reports.content.DimensionCategory;
import org.activityinfo.legacy.shared.reports.content.EntityCategory;
import java.util.Arrays;
public class BucketKey {
private final EntityCategory indicatorCategory;
private final DimensionCategory[] categories;
private final int hashCode;
public BucketKey(EntityCategory indicatorCategory, DimensionCategory[] siteDimCategories) {
this.indicatorCategory = indicatorCategory;
this.categories = siteDimCategories;
this.hashCode = computeHashCode();
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
BucketKey bucketKey = (BucketKey) o;
if (!Arrays.equals(categories, bucketKey.categories)) {
return false;
}
if (!indicatorCategory.equals(bucketKey.indicatorCategory)) {
return false;
}
return true;
}
private int computeHashCode() {
int result = indicatorCategory.hashCode();
result = 31 * result + Arrays.hashCode(categories);
return result;
}
@Override
public int hashCode() {
return hashCode;
}
}