public static RateFunction getGenValueFunction()

in src/main/java/com/amazonaws/mskdatagen/core/generator/GenValueFunctions.java [29:60]


    public static RateFunction getGenValueFunction(Context context, Generator generator) {
        if (generator.getStrategy() == Strategy.ISOLATED) {
            Faker faker = context.getContextMap().get(ConfigType.FAKER_CONFIG).stream().map(t -> ((FakerConfig) t).getFaker())
                    .findFirst().orElseThrow(() -> new IllegalArgumentException("Can't find faker object"));

            return isNullable(context, generator, input -> faker.expression(generator.getExpression()));
        } else if (generator.getStrategy() == Strategy.DEPENDENT) {
            List<String> concatAttr = generator.getAttr();
            return isNullable(context, generator, getValueDepsFnByAttr(generator, concatAttr));
        } else if (generator.getStrategy() == Strategy.EITHER) {
            String topic = generator.getTopic();
            List<String> concatAttr = generator.getAttr();
            String expression = generator.getExpression();

            double rate = chooseMatchingRate(context, topic, generator.getNs(), generator.getConcatAttr());

            Function<DepsParameters, String> dependentFunction = getValueDepsFnByAttr(generator, concatAttr);

            return isNullable(context, generator, input -> {
                String dep = dependentFunction.apply(input);

                if (Math.random() <= rate && dep != null) {
                    return dep;
                }
                return context.getContextMap().get(ConfigType.FAKER_CONFIG).stream().map(t -> ((FakerConfig) t).getFaker())
                        .findFirst().orElseThrow(() -> new IllegalArgumentException("Can't find faker object"))
                        .expression(expression);
            });
        }

        return null;
    }