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}