private Generator compileGeneratorStrategy()

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);
    }