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