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

com.github.javafaker.Lorem Maven / Gradle / Ivy

Go to download

This library is a port of Ruby's stympy/faker gem (as well as Perl's Data::Faker library) that generates fake data. It's useful when you're developing a new project and need some pretty data for showcase.

There is a newer version: 1.0.2
Show newest version
package com.github.javafaker;

import org.apache.commons.lang3.StringUtils;

import java.util.ArrayList;
import java.util.List;

import static org.apache.commons.lang3.StringUtils.capitalize;
import static org.apache.commons.lang3.StringUtils.join;

public class Lorem {
    private final Faker faker;

    protected Lorem(Faker faker) {
        this.faker = faker;
    }
    
    public char character() {
        return character(false);
    }

    public char character(boolean includeUppercase) {
        return characters(1).charAt(0);
    }

    public String characters() {
        return characters(255, false);
    }

    public String characters(boolean includeUppercase) {
        return characters(255, false);
    }

    public String characters(int minimumLength, int maximumLength) {
        return characters(faker.random().nextInt(maximumLength - minimumLength) + minimumLength, false);
    }

    public String characters(int minimumLength, int maximumLength, boolean includeUppercase) {
        return characters(faker.random().nextInt(maximumLength - minimumLength) + minimumLength, includeUppercase);
    }

    public String characters(int fixedNumberOfCharacters) {
        return characters(fixedNumberOfCharacters, false);
    }

    public String characters(int fixedNumberOfCharacters, boolean includeUppercase) {
        if (fixedNumberOfCharacters < 1) {
            return "";
        }
        char[] buffer = new char[fixedNumberOfCharacters];
        for (int i = 0; i < buffer.length; i++) {
            char randomCharacter = characters[faker.random().nextInt(characters.length)];
            if (includeUppercase && faker.bool().bool()) {
                randomCharacter = Character.toUpperCase(randomCharacter);
            }
            buffer[i] = randomCharacter;
        }
        return new String(buffer);
    }

    public List words(int num) {
        List returnList = new ArrayList();
        for (int i = 0; i < num; i++) {
            returnList.add(word());
        }
        return returnList;
    }

    public List words() {
        return words(3);
    }

    public String word() {
        return faker.fakeValuesService().resolve("lorem.words", this, faker);
    }

    /**
     * Create a sentence with a random number of words within the range 4..10.
     * @return a random sentence
     */
    public String sentence() {
        return sentence(3);
    }

    /**
     * Create a sentence with a random number of words within the range (wordCount+1)..(wordCount+6).
     * @param wordCount
     * @return a random sentence
     */
    public String sentence(int wordCount) {
        return sentence(wordCount, 6);
    }

    /**
     * Create a sentence with a random number of words within the range (wordCount+1)..(wordCount+randomWordsToAdd).

* * Set {@code randomWordsToAdd} to 0 to generate sentences with a fixed number of words. * @param wordCount * @param randomWordsToAdd * @return a random sentence */ public String sentence(int wordCount, int randomWordsToAdd) { int numberOfWordsToAdd = randomWordsToAdd == 0 ? 0 : faker.random().nextInt(randomWordsToAdd); return capitalize(join(words(wordCount + numberOfWordsToAdd), " ") + "."); } public List sentences(int sentenceCount) { List sentences = new ArrayList(sentenceCount); for (int i = 0; i < sentenceCount; i++) { sentences.add(sentence()); } return sentences; } public String paragraph(int sentenceCount) { return join(sentences(sentenceCount + faker.random().nextInt(3)), " "); } public String paragraph() { return paragraph(3); } public List paragraphs(int paragraphCount) { List paragraphs = new ArrayList(paragraphCount); for (int i = 0; i < paragraphCount; i++) { paragraphs.add(paragraph()); } return paragraphs; } /** * Create a string with a fixed size. Can be useful for testing * validator based on length string for example * * @param numberOfLetters size of the expected String * @return a string with a fixed size */ public String fixedString(int numberOfLetters) { StringBuilder builder = new StringBuilder(); while (builder.length() < numberOfLetters) { builder.append(sentence()); } return StringUtils.substring(builder.toString(), 0, numberOfLetters); } static { StringBuilder builder = new StringBuilder(36); for (char number = '0'; number <= '9'; number++) { builder.append(number); } for (char character = 'a'; character <= 'z'; character++) { builder.append(character); } characters = builder.toString().toCharArray(); } private static final char[] characters; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy