in src/main/java/com/amazonaws/mskdatagen/core/CompileGeneratorStrategies.java [122:147]
private Generator compileGeneratorStrategy(List<Generator> generators) {
List<Generator> sortedGenerators = sortStrategies(generators);
if (isIsolatedAndNotQualified(sortedGenerators)
|| isDependentAndNotQualified(sortedGenerators)) {
return sortedGenerators.stream().findFirst().orElseThrow(() -> new IllegalArgumentException("Can't find generator for IsolatedAndNotQualified"));
} else if (isQualifiedIsolatedDependent(sortedGenerators)) {
String expression = sortedGenerators.stream().skip(1)
.findAny().map(Generator::getExpression).orElseThrow(() -> new IllegalArgumentException("Can't find generator for isQualifiedIsolatedDependent"));
Optional<Generator> firstGenerator = sortedGenerators.stream().findFirst();
if (firstGenerator.isPresent()) {
Generator generator = firstGenerator.get();
return new Generator.GeneratorBuilder()
.setStrategy(Strategy.EITHER)
.setExpression(expression)
.setTopic(generator.getTopic())
.setNs(generator.getNs())
.setAttr(generator.getAttr())
.build();
}
}
throw new IllegalArgumentException("Any generators were not find, input list: " + generators);
}