public boolean eval(ContentFile<?> file) {
    // TODO: detect the case where a column is missing from the file using file's max field id.
    return new MetricsEvalVisitor().eval(file);
  }
@Test
  public void testAllNulls() {
    boolean shouldRead = new StrictMetricsEvaluator(SCHEMA, notNull("all_nulls")).eval(FILE);
    assertThat(shouldRead).as("Should not match: no non-null value in all null column").isFalse();

    shouldRead = new StrictMetricsEvaluator(SCHEMA, notNull("some_nulls")).eval(FILE);
    assertThat(shouldRead)
        .as("Should not match: column with some nulls contains a non-null value")
        .isFalse();

    shouldRead = new StrictMetricsEvaluator(SCHEMA, notNull("no_nulls")).eval(FILE);
    assertThat(shouldRead).as("Should match: non-null column contains no null values").isTrue();

    shouldRead = new StrictMetricsEvaluator(SCHEMA, notEqual("all_nulls", "a")).eval(FILE);
    assertThat(shouldRead).as("Should match: notEqual on all nulls column").isTrue();
  }