TableLineBuilder { public TableLineBuilder withExtension(TableLineExtender extender) { extender.addData(this); return this; }  TableLineBuilder withInt(String columnHeader, Integer value); TableLineBuilder withLong(String columnHeader, Long value); TableLineBuilder withId(String columnHeader, Id<?> id); TableLineBuilder withStringId(String columnHeader, StringId<?> id); TableLineBuilder withDouble(String columnHeader, Double value); TableLineBuilder withBoolean(String columnHeader, Boolean value); TableLineBuilder withTime(String columnHeader, LocalDateTime value); TableLineBuilder withString(String columnHeader, String value); TableLineBuilder withEnumValue(String columnHeader, T enumValue); TableLineBuilder withEnumCount(
            String statName,
            Map<T, Integer> countByEnum,
            Class<T> clazz); TableLineBuilder withTableEnumCount(
            String statName,
            Table<R, C, Integer> countTable,
            Class<R> rowClass,
            Class<C> columnClass); TableLineBuilder withExtension(TableLineExtender extender); TableLine build();  }
@Test void testWithExtension() { TableLineExtender extender = new TestTableLineExtender(); TableLine tableLine = builder.withExtension(extender).build(); TableLine expectedTableLine = new TableLine(ImmutableMap.of( "TestTableLine", "Test", "HasThisBeenAdded", "true"), ImmutableSet.of("TestTableLine")); checkTableLinesAreTheSame(expectedTableLine, tableLine); }