public T next() throws GeneratorException {
for(int idx = 0; idx < maxTries; idx++) {
T value = generator.next();
if(tryValue(value)) return value;
}
throw new GeneratorException(format("Failed to generate another value after [%s] tries (generator: %s)",
maxTries, generator), generator);
}