EnumGenerator.java
package net.morimekta.providence.testing.generator.defaults;
import net.morimekta.providence.PEnumValue;
import net.morimekta.providence.descriptor.PEnumDescriptor;
import net.morimekta.providence.testing.generator.GeneratorContext;
import net.morimekta.providence.testing.generator.Generator;
import static java.lang.Math.abs;
/**
* Default generator for an enum field.
*/
public class EnumGenerator<Context extends GeneratorContext<Context>, E extends PEnumValue<E>>
implements Generator<Context, E> {
private final E[] values;
public EnumGenerator(PEnumDescriptor<E> descriptor) {
values = descriptor.getValues();
}
@Override
public E generate(Context ctx) {
if (values.length == 0) {
return null;
}
return values[abs(ctx.getRandom().nextInt(values.length))];
}
}