@Override
  public boolean equals(Object object)
  {
    if (this == object)
    {
      return true;
    }
    if (object == null || getClass() != object.getClass())
    {
      return false;
    }
    CollectionResult<?, ?> that = (CollectionResult<?, ?>) object;
    return Objects.equals(_elements, that._elements)
        && Objects.equals(_metadata, that._metadata)
        && Objects.equals(_total, that._total)
        && _pageIncrement == that._pageIncrement;
  }
@Test(dataProvider = "testEqualsDataProvider")
  public void testEquals
      (
          boolean shouldEquals,
          @Nonnull CollectionResult<TestRecordTemplateClass.Foo, TestRecordTemplateClass.Bar> collectionResult,
          @Nullable Object compareObject
      )
  {
    assertEquals(collectionResult.equals(compareObject), shouldEquals);
  }