ListGenerator.java
- package net.morimekta.providence.testing.generator.defaults;
- import net.morimekta.providence.descriptor.PList;
- import net.morimekta.providence.testing.generator.GeneratorContext;
- import net.morimekta.providence.testing.generator.Generator;
- import java.util.List;
- /**
- * Default generator for a list field.
- */
- public class ListGenerator<Context extends GeneratorContext<Context>>
- implements Generator<Context, List<Object>> {
- private final PList<Object> list;
- public ListGenerator(PList<Object> list) {
- this.list = list;
- }
- @Override
- @SuppressWarnings("unchecked")
- public List<Object> generate(Context ctx) {
- int num = ctx.nextCollectionSize();
- Generator generator = ctx.generatorForDescriptor(list.itemDescriptor());
- PList.Builder<Object> builder = list.builder(num);
- for (int i = 0; i < num; ++i) {
- builder.add(generator.generate(ctx));
- }
- return builder.build();
- }
- }