Class MessageGenerator<Context extends GeneratorContext<Context>,Message extends net.morimekta.providence.PMessage<Message,Field>,Field extends net.morimekta.providence.descriptor.PField>

  • 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 Detail

      • MessageGenerator

        public MessageGenerator​(net.morimekta.providence.descriptor.PMessageDescriptor<Message,Field> descriptor)
    • 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.