001package de.cuioss.test.generator.domain;
002
003import java.util.Locale;
004
005import de.cuioss.test.generator.TypedGenerator;
006
007/**
008 * Generates name strings in the form of 'firstname lastname', depending on the
009 * given {@link Locale}
010 *
011 * @author Oliver Wolff
012 *
013 */
014public class FullNameGenerator implements TypedGenerator<String> {
015
016    private final TypedGenerator<String> firstNames;
017    private final TypedGenerator<String> familyNames;
018
019    /**
020     * @param locale
021     *            to be used for determining the concrete name-set. In case it
022     *            is {@link Locale#GERMAN} german names will be generated, in
023     *            all other cases english-names.
024     */
025    public FullNameGenerator(final Locale locale) {
026        if (Locale.GERMAN.equals(locale)) {
027            firstNames = NameGenerators.FIRSTNAMES_ANY_GERMAN.generator();
028            familyNames = NameGenerators.FAMILY_NAMES_GERMAN.generator();
029        } else {
030            firstNames = NameGenerators.FIRSTNAMES_ANY_ENGLISH.generator();
031            familyNames = NameGenerators.FAMILY_NAMES_ENGLISH.generator();
032        }
033    }
034
035    @Override
036    public String next() {
037        return firstNames.next() + ' ' + familyNames.next();
038    }
039
040}