Class MessageGenerator<Context extends GeneratorContext<Context>,Message extends net.morimekta.providence.PMessage<Message,Field>,Field extends net.morimekta.providence.descriptor.PField>
- java.lang.Object
-
- net.morimekta.providence.testing.generator.MessageGenerator<Context,Message,Field>
-
- All Implemented Interfaces:
Generator<Context,Message>
public class MessageGenerator<Context extends GeneratorContext<Context>,Message extends net.morimekta.providence.PMessage<Message,Field>,Field extends net.morimekta.providence.descriptor.PField> extends java.lang.Object implements Generator<Context,Message>
Message generator for generating a specific message.
-
-
Constructor Summary
Constructors Constructor Description MessageGenerator(net.morimekta.providence.descriptor.PMessageDescriptor<Message,Field> descriptor)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected MessageGenerator<Context,Message,Field>
deepCopy()
Message
generate(Context options)
MessageGenerator<Context,Message,Field>
resetDefaultPresence()
Reset all field presence probabilities to default based on the fill rate of the message generator options.MessageGenerator<Context,Message,Field>
setAlwaysAbsent(Field... fields)
Set which fields must never be generated.MessageGenerator<Context,Message,Field>
setAlwaysAbsent(java.util.Collection<Field> fields)
Set which fields must never be generated.MessageGenerator<Context,Message,Field>
setAlwaysPresent(Field... fields)
Set which fields must always be generated.MessageGenerator<Context,Message,Field>
setAlwaysPresent(java.util.Collection<Field> fields)
Set which fields must always be generated.MessageGenerator<Context,Message,Field>
setDefaultPresence(Field... fields)
Set default presence probability based on the default fill rate in the generator options instance.MessageGenerator<Context,Message,Field>
setDefaultPresence(java.util.Collection<Field> fields)
Set default presence probability based on the default fill rate in the generator options instance.MessageGenerator<Context,Message,Field>
setValueGenerator(Field field, Generator<Context,?> generator)
-
-
-
Method Detail
-
setAlwaysPresent
@SafeVarargs public final MessageGenerator<Context,Message,Field> setAlwaysPresent(Field... fields)
Set which fields must always be generated. Note that unions only allow for one single field to be always present.- Parameters:
fields
- The fields that must be generated for each instance.- Returns:
- The message generator.
-
setAlwaysPresent
public MessageGenerator<Context,Message,Field> setAlwaysPresent(@Nonnull java.util.Collection<Field> fields)
Set which fields must always be generated. Note that unions only allow for one single field to be always present.- Parameters:
fields
- The fields that must be generated for each instance.- Returns:
- The message generator.
-
setAlwaysAbsent
@SafeVarargs public final MessageGenerator<Context,Message,Field> setAlwaysAbsent(Field... fields)
Set which fields must never be generated. If the message is a union then these fields will not be selected when getting a random field to get value for.- Parameters:
fields
- The fields that should always be absent.- Returns:
- The message generator.
-
setAlwaysAbsent
public MessageGenerator<Context,Message,Field> setAlwaysAbsent(@Nonnull java.util.Collection<Field> fields)
Set which fields must never be generated. If the message is a union then these fields will not be selected when getting a random field to get value for.- Parameters:
fields
- The fields that should always be absent.- Returns:
- The message generator.
-
setDefaultPresence
@SafeVarargs public final MessageGenerator<Context,Message,Field> setDefaultPresence(Field... fields)
Set default presence probability based on the default fill rate in the generator options instance.- Parameters:
fields
- The fields the should have default presence probability.- Returns:
- The message generator.
-
setDefaultPresence
public MessageGenerator<Context,Message,Field> setDefaultPresence(@Nonnull java.util.Collection<Field> fields)
Set default presence probability based on the default fill rate in the generator options instance.- Parameters:
fields
- The fields the should have default presence probability.- Returns:
- The message generator.
-
resetDefaultPresence
public MessageGenerator<Context,Message,Field> resetDefaultPresence()
Reset all field presence probabilities to default based on the fill rate of the message generator options.- Returns:
- The message generator.
-
setValueGenerator
public MessageGenerator<Context,Message,Field> setValueGenerator(Field field, Generator<Context,?> generator)
-
deepCopy
protected MessageGenerator<Context,Message,Field> deepCopy()
-
-