class Metrics {

  @Override
  public boolean equals(@Nullable Object obj) {
    if (this == obj) {
      return true;
    }
    if (!(obj instanceof Metrics)) {
      return false;
    }
    Metrics rhs = (Metrics) obj;
    return _aggregations.equals(rhs._aggregations)
        && _emptyColumns.equals(rhs._emptyColumns)
        && _numExcludedRows == rhs._numExcludedRows
        && _numRows == rhs._numRows;
  }

  private  Metrics(
      @Nonnull Map<String, Map<Aggregation, Object>> aggregations,
      @Nonnull Set<String> emptyColumns,
      int numExcludedRows,
      int numRows);

}