class GuavaBloomFilter implements ExpirableBloomFilter {

    @Override
    public String toString() {
        return "GuavaBloomFilter{" +
                ", expectedInsertions=" + expectedInsertions +
                ", fpp=" + fpp +
                ", expiration=" + expiration +
                ", validPeriodAfterAccess" + validPeriodAfterAccess +
                ", created=" + created +
                '}';
    }

    @JsonCreator  GuavaBloomFilter(@JsonProperty("expectedInsertions") int expectedInsertions,
                     @JsonProperty("fpp") double fpp,
                     @JsonProperty("created") ZonedDateTime created,
                     @JsonProperty("expiration") ZonedDateTime expiration,
                     @Nullable @JsonProperty("validPeriodAfterAccess") Duration validPeriodAfterAccess);
      GuavaBloomFilter(int expectedInsertions,
                     double fpp,
                     ZonedDateTime created,
                     ZonedDateTime expiration,
                     @Nullable Duration validPeriodAfterAccess,
                     Timer timer);
    private  GuavaBloomFilter(int expectedInsertions,
                             double fpp,
                             ZonedDateTime created,
                             ZonedDateTime expiration,
                             @Nullable Duration validPeriodAfterAccess,
                             com.google.common.hash.BloomFilter<CharSequence> filter,
                             Timer timer);

}