All Downloads are FREE. Search and download functionalities are using the official Maven repository.

filldb.generators.LocalLorums Maven / Gradle / Ivy

package filldb.generators;

import java.io.IOException;
import java.util.List;
import java.util.function.Supplier;

import static filldb.core.Constants.LORUM_IPSUM;
import static filldb.core.Util.*;
import static java.util.Arrays.asList;

public enum LocalLorums {;

    public static Supplier newRandomLocalIpsumGenerator() {
        final List generators =
            asList( newDeLoreanIpsum(), newDoggoIpsum(), newMauiIpsum()
                  , newRikerIpsum(), newSamuelJacksonIpsum(), newFuzzAttacksIpsum());

        return () -> {
            int tries = 3;
            while (tries > 0) {
                try {
                    return randomItemFrom(generators).getIpsum();
                } catch (IOException e) { /* Local ones can't fail but yeah */ }
                tries--;
            }
            return LORUM_IPSUM;
        };
    }

    public static LorumIpsumGenerator newDeLoreanIpsum() {
        final List movie = resourceToLines("/lorum/delorean.txt");
        return () -> {
            final int index = randomInt(movie.size());
            final StringBuilder builder = new StringBuilder();
            for (int i = 0; i < 20; i++) {
                builder.append(movie.get(i+index % movie.size()));
                builder.append("\n");
            }
            return builder.toString();
        };
    }

    public static LorumIpsumGenerator newDoggoIpsum() {
        final List dogwords = resourceToLines("/lorum/doggo.txt");
        return () -> {
            final int numSentences = randomInt(20)+5;
            final StringBuilder builder = new StringBuilder();
            for (int i = 0; i < numSentences; i++) {
                builder.append(newSentence(dogwords));
            }
            return builder.toString();
        };
    }

    public static LorumIpsumGenerator newMauiIpsum() {
        final String fishEnglish = resourceAsString("/lorum/maui-fish-english.txt");
        final String fishMaori = resourceAsString("/lorum/maui-fish-maori.txt");
        final String sunEnglish = resourceAsString("/lorum/maui-sun-english.txt");
        final String sunMaori = resourceAsString("/lorum/maui-sun-maori.txt");
        return () -> {
            if (isTrue(chance(0.25))) return fishEnglish;
            if (isTrue(chance(0.25))) return fishMaori;
            if (isTrue(chance(0.25))) return sunEnglish;
            return sunMaori;
        };
    }

    public static LorumIpsumGenerator newRikerIpsum() {
        final List riker = resourceToLines("/lorum/riker.txt");
        return () -> {
            final StringBuilder builder = new StringBuilder();
            for (int i = 0; i < 25; i++) {
                builder.append(riker.get(randomInt(riker.size())));
                builder.append("\n");
            }
            return builder.toString();
        };
    }

    public static LorumIpsumGenerator newSamuelJacksonIpsum() {
        final List jackson = resourceToLines("/lorum/samuel-l-jackson.txt");
        return () -> randomItemFrom(jackson);
    }

    public static LorumIpsumGenerator newFuzzAttacksIpsum() {
        final List attacks = resourceToLines("/lists/all-attacks.txt");
        return () -> randomItemFrom(attacks);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy