﻿package de.hska.java.aufgaben.felder;

/**
 * ZufallsnamenGenerator dient zum Erzeugen von zufälligen Namen bestehende
 * aus Vor- und Nachname. 
 *
 * @author pape
 */
public class ZufallsnamenGenerator {

  
  /**
   * Liste männlicher und weiblicher Vornamen ohne
   * Doppelnamen wie "Josef Helmut".
   * Die Namen sind aus der deutschen Wikipedia entnommen.
   * vornamen[0] enthält die männlichen Vornamen.
   * vornamen[1] enthält die weiblichen Vornamen.
   */
  private static String vornamen [] [] = {
      { "Aaron",
        "Adalbert",
        "Adam",
        "Adolf",
        "Adrian",
        "Adriano",
        "Ahmad",
        "Albrecht",
        "Aldhelm",
        "Alexander",
        "Alfred",
        "Ali",
        "Alois",
        "Alwin",
        "Amadeus",
        "Amos", 
        "Anastasius",
        "Anders", 
        "Andre",
        "Andrea",
        "Andreas",
        "Andres",
        "Andrew",
        "Andrzej",
        "André",
        "Anselm",
        "Ansgar",
        "Anton",
        "Antonius",
        "Archibald",
        "Aribert",
        "Armin",
        "Arndt",
        "Arne",
        "Arnim",
        "Arno", 
        "Arnold",
        "Arnulf",
        "Aron",
        "Arthur", 
        "Artur",
        "Arved",
        "Asmus",
        "Attila", 
        "August", 
        "Augustin",
        "Axel",
        "Balduin",
        "Baldur",
        "Balthasar",
        "Baptist",
        "Barnabas",
        "Bartholom",
        "Bastian",
        "Beat", 
        "Benedikt",
        "Benjamin",
        "Benno",
        "Benutzer",
        "Bernd",
        "Bernhard",
        "Berno",
        "Bert",
        "Berthold",
        "Bertram",
        "Birger",
        "Björn",
        "Blasius",
        "Bogdan",
        "Boleslaw",
        "Bonifatius",
        "Boris",
        "Brian",
        "Burckhardt",
        "Burkhardt",
        "Béla",
        "Caesar",
        "Calvin",
        "Can", 
        "Candid",
        "Carl",
        "Carlos",
        "Carsten",
        "Charles",
        "Charlie",
        "Charly",
        "Chlodwig",
        "Chlothar",
        "Christian",
        "Christoph",
        "Christopher",
        "Clyde", 
        "Conan",
        "Cornelius",
        "Corvin",
        "Cosimo", 
        "Crispian",
        "Dagobert",
        "Damian",
        "Daniel", 
        "Dario",
        "David", 
        "Dedo",
        "Denes",
        "Dennis",
        "Dietmar",
        "Dietrich",
        "Dimitrij",
        "Dirk", 
        "Djordje",
        "Dominik",
        "Eberhard",
        "Eckbert",
        "Edgar",
        "Edmund",
        "Eduard",
        "Edwin",
        "Eike",
        "Ekkehard",
        "Eli",
        "Elias", 
        "Elmar",
        "Elton",
        "Emanuel",
        "Emil",
        "Enno",
        "Enrico",
        "Erich",
        "Erkan",
        "Erkmar",
        "Ernst", 
        "Erwin",
        "Eugen",
        "Ewald", 
        "Fabian",
        "Fabius",
        "Falk",
        "Felix",
        "Ferdinand",
        "Finn", 
        "Flavio",
        "Florestan",
        "Florian",
        "Florin",
        "Frank",
        "Franz",
        "Franz",
        "Fred",
        "Frederick",
        "Fridolin",
        "Friedemann",
        "Friedrich",
        "Fritz",
        "Gabriel", 
        "Gaudenz",
        "Gebhard",
        "Geoffrey",
        "Georg",
        "Gerhard",
        "Gernot",
        "Gerold",
        "Gilbert", 
        "Gotthard",
        "Grant",
        "Gregor",
        "Grischa",
        "Guido",
        "Gundo",
        "Gunnar",
        "Gunther",
        "Guntram",
        "Gustav",
        "Götz",
        "Günther",
        "Hadmar",
        "Hadrian", 
        "Hans",
        "Harald",
        "Harro",
        "Hartmut",
        "Hartwin",
        "Hauke",
        "Heinrich",
        "Helmut",
        "Henning",
        "Herbert",
        "Heribert",
        "Hermann",
        "Heron",
        "Holger",
        "Horst",
        "Hubert",
        "Hugo",
        "Igor",
        "Ilja",
        "Immanuel",
        "Inga",
        "Ingmar",
        "Ingo",
        "Ira",
        "Isaak",
        "Ivo",
        "Jakob",
        "James",
        "Jan",
        "Jari",
        "Jehoschua",
        "Jesko",
        "Jesus",
        "Jo",
        "Joachim",
        "Joah",
        "Johann",
        "Johannes",
        "Jonas",
        "Jonathan",
        "Josef",
        "Josua",
        "Julian",
        "Julier",
        "Julius",
        "Justus",
        "Jógvan",
        "Jörg",
        "Jörn",
        "Jürgen",
        "Kai",
        "Kari",
        "Karl",
        "Kasimir",
        "Kaspar",
        "Keanu",
        "Kenneth",
        "Kevin",
        "Kimball",
        "Klaus",
        "Klemens",
        "Knut",
        "Koloman",
        "Konrad",
        "Konstantin",
        "Korbinian",
        "Kurt",
        "Lamprecht",
        "Laurentius",
        "Lawrence",
        "Leo",
        "Leon",
        "Leonhard",
        "Leopold",
        "Linus",
        "Lionel",
        "Lorenz",
        "Loris",
        "Lothar",
        "Louis",
        "Luca",
        "Ludger",
        "Ludwig",
        "Lukas",
        "Mahomet",
        "Malte",
        "Manfred",
        "Manuel",
        "Mario",
        "Markus",
        "Marten",
        "Martin",
        "Marvin",
        "Matthias",
        "Maximilian",
        "Medard",
        "Merten",
        "Micha",
        "Michael",
        "Michel",
        "Miguel",
        "Mike",
        "Mirko",
        "Modestus",
        "Mohammed",
        "Moritz",
        "Nando",
        "Nathan",
        "Nico",
        "Nikita",
        "Nikola",
        "Nikolai",
        "Nikolaus",
        "Nils",
        "Norbert",
        "Odo",
        "Olaf",
        "Oleg",
        "Oliver",
        "Olivier",
        "Oskar",
        "Oswald",
        "Othmar",
        "Otto",
        "Pascal",
        "Patrice",
        "Patrick",
        "Paul",
        "Peer",
        "Peppone",
        "Peter",
        "Petrus",
        "Philemon",
        "Philipp",
        "Quintus",
        "Quirin",
        "Radomir",
        "Raimund",
        "Rainer",
        "Ralph",
        "Raphael",
        "Reinhard",
        "Reinhold",
        "René",
        "Ricardo",
        "Richard",
        "Ringo",
        "Roald",
        "Robert",
        "Robin",
        "Rochus",
        "Roland",
        "Roy",
        "Ruben",
        "Rudolf",
        "Rupert",
        "Rupertus",
        "Ruprecht",
        "Rüdiger",
        "Sachso",
        "Salomo",
        "Samuel",
        "Sandy",
        "Sascha",
        "Sean",
        "Sebastian",
        "Shelly",
        "Siegfried",
        "Siegmund",
        "Sigismund",
        "Silas",
        "Silvester",
        "Silvio",
        "Simon",
        "Sjard",
        "Stephan",
        "Sven",
        "Sönke",
        "Sören",
        "Tarik",
        "Tassilo",
        "Theodor",
        "Theodosius",
        "Thilo",
        "Thomas",
        "Thorbjörn",
        "Thorsten",
        "Thrasyvoulos",
        "Tim",
        "Timon",
        "Tobias",
        "Tom",
        "Toni",
        "Torben",
        "Torger",
        "Tristan",
        "Udo",
        "Ulf",
        "Ulrich",
        "Urs",
        "Uwe",
        "Valentin",
        "Vivien",
        "Volker",
        "Waldemar",
        "Walter",
        "Warner",
        "Wenzel",
        "Werner",
        "Weselius",
        "Widukind",
        "Wieland",
        "Wilhelm",
        "William",
        "Winand",
        "Wladimir",
        "Wladyslaw",
        "Wolfgang",
        "Wolfhard",
        "Wolfram",
        "Xaver",
        "Yannick",
        "Zacharias",
        "Zenon",
        "Zoticus",  
      },
      
      {
        "Abigail",
        "Ada",
        "Adela",
        "Adele",
        "Adelgunde",
        "Adelheid",
        "Adelinde",
        "Adina",
        "Adriana",
        "Adriane",
        "Adrienne",
        "Agathe",
        "Agnes",
        "Alberta",
        "Alexandra",
        "Alice",
        "Alma",
        "Almut",
        "Aloisia",
        "Alraune",
        "Alrun",
        "Alwine",
        "Amalie",
        "Amelie",
        "Amina",
        "Anabel",
        "Anastasia",
        "Andrea",
        "Angela",
        "Angelika",
        "Angelina",
        "Anita",
        "Anja",
        "Anka",
        "Anke",
        "Anna",
        "Annegret",
        "Anneliese",
        "Annemarie",
        "Annette",
        "Annika",
        "Annouk",
        "Anouk",
        "Ansgard",
        "Antje",
        "Antoinette",
        "Antonia",
        "Antonie",
        "Apollonia",
        "Arabella",
        "Ariadne",
        "Ariane",
        "Armgard",
        "Asgard",
        "Asta",
        "Astrid",
        "Augusta",
        "Augustine",
        "Aurora",
        "Ava",
        "Babette",
        "Barbara",
        "Beate",
        "Beatrice",
        "Beatrix",
        "Berenike",
        "Berit",
        "Bettina",
        "Bianka",
        "Birgit",
        "Brigitte",
        "Carina",
        "Carmen",
        "Carola",
        "Carolin",
        "Celina",
        "Cemile",
        "Charlotte",
        "Christiane",
        "Christine",
        "Claire",
        "Claudia",
        "Clementine",
        "Cora",
        "Cordula",
        "Corinna",
        "Cornelia",
        "Cosima",
        "Cäcilia",
        "Cäcilie",
        "Dagmar",
        "Dana",
        "Daniela",
        "Debora",
        "Delia",
        "Denise",
        "Diana",
        "Diethild",
        "Dora",
        "Dorothea",
        "Edeltraud",
        "Eleonore",
        "Elisabeth",
        "Elsa",
        "Else",
        "Emma",
        "Esther",
        "Eudokia",
        "Eva",
        "Evelyn",
        "Fabia",
        "Felicitas",
        "Fenja",
        "Fennedine",
        "Fiona",
        "Florence",
        "Franziska",
        "Frauke",
        "Frida",
        "Frieda",
        "Gabriele",
        "Genoveva",
        "Geofreda",
        "Georgia",
        "Gerlinde",
        "Gertrud",
        "Gisela",
        "Gunda",
        "Gundela",
        "Gundelinde",
        "Hannah",
        "Hannelore",
        "Hedwig",
        "Heidi",
        "Heike",
        "Heilgard",
        "Helena",
        "Helene",
        "Helga",
        "Helgard",
        "Hella",
        "Henriette",
        "Hilde",
        "Hildegard",
        "Holde",
        "Ilka",
        "Ilona",
        "Ilse",
        "Inga",
        "Ira",
        "Irene",
        "Iris",
        "Irma",
        "Irmgard",
        "Isabella",
        "Jana",
        "Janina",
        "Janine",
        "Janna",
        "Jeanette",
        "Jeannette",
        "Jelena",
        "Jennifer",
        "Jenny",
        "Jessica",
        "Jo",
        "Joelle",
        "Johanna",
        "Josephine",
        "Judith",
        "Julia",
        "Juliane",
        "Jördis",
        "Kari",
        "Karla",
        "Karoline",
        "Kassandra",
        "Keiko",
        "Kerstin",
        "Kira",
        "Klara",
        "Kriemhild",
        "Laetitia",
        "Larissa",
        "Laura",
        "Lea",
        "Leonie",
        "Leyla",
        "Liane",
        "Lilith",
        "Lilli",
        "Linda",
        "Lisanne",
        "Lucia",
        "Luise",
        "Lydia",
        "Madita",
        "Magdalena",
        "Maike",
        "Malwine",
        "Mandy",
        "Manuela",
        "Marcella",
        "Margarete",
        "Maria",
        "Marianne",
        "Marietta",
        "Marina",
        "Marleen",
        "Martha",
        "Mathilde",
        "Mechthild",
        "Meike",
        "Melanie",
        "Meral",
        "Mercedes",
        "Meret",
        "Merit",
        "Merrit",
        "Michaela",
        "Milka",
        "Miriam",
        "Mona",
        "Monika",
        "Muriel",
        "Nadia",
        "Nadine",
        "Nancy",
        "Natalie",
        "Natascha",
        "Nefertari",
        "Nicole",
        "Nikola",
        "Nina",
        "Nora",
        "Nyota",
        "Olga",
        "Olivia",
        "Patrice",
        "Paula",
        "Petra",
        "Pia",
        "Rahel",
        "Rebecca",
        "Regina",
        "Renate",
        "Rike",
        "Rita",
        "Romy",
        "Ronja",
        "Ruth",
        "Sabine",
        "Sabrina",
        "Samantha",
        "Sandra",
        "Sandrine",
        "Sandy",
        "Sarah",
        "Sarine",
        "Sascha",
        "Saskia",
        "Scholastika",
        "Shelly",
        "Sibylle",
        "Sigita",
        "Sigrid",
        "Silvana",
        "Silvia",
        "Skrollan",
        "Solveig",
        "Solvej",
        "Solvi",
        "Sophia",
        "Stella",
        "Susanne",
        "Synke",
        "Tabea",
        "Tamara",
        "Tanja",
        "Tatjana",
        "Theodora",
        "Therese",
        "Thordis",
        "Thurid",
        "Tina",
        "Tuja",
        "Tullia",
        "Ulrike",
        "Ursula",
        "Urte",
        "Ute",
        "Vanessa",
        "Vera",
        "Verena",
        "Veronika",
        "Viola",
        "Virginia",
        "Vivien",
        "Walburga",
        "Waltraud",
        "Welella",
        "Wiebke",
        "Wilhelmine",
        "Wilma",
        "Wiltrud",
        "Winifred",
        "Xanthippe",
        "Xaveria",
        "Yvonne",
        "Zita",
        "Zoe",
      }
  };
  
  /**
   * Die Liste deutscher Nachnamen, ohne Doppelnamen wie
   * "Meier-Müller". Die Namen stammen aus der deutschen
   * Wikipedia.
   */
  private static String nachnamen [] = {
        "Abendroth",
        "Abraham",
        "Abt",
        "Adam",
        "Albert",
        "Albrecht",
        "Amalie",
        "Anders",
        "Andres",
        "Appel",
        "Baumann",
        "Becherer",
        "Becker",
        "Behm",
        "Biermann",
        "Böhm",
        "Böll",
        "Braun",
        "Brühlmeier",
        "Calvin",
        "Christiansen",
        "Curtius",
        "Diederich",
        "Dürrschnabel",
        "Eschenburg",
        "Falk",
        "Fehling",
        "Fischer",
        "Forge",
        "Förster",
        "Frank",
        "Franz",
        "Frenzel",
        "Freud",
        "Freund",
        "Friedemann",
        "Fröhlich",
        "Gärtner",
        "Gerster",
        "Glaser",
        "Götz",
        "Gruber",
        "Grubner",
        "Hackmann",
        "Haller",
        "Heider",
        "Heine",
        "Henne",
        "Hering",
        "Herold",
        "Herrmann",
        "Herzog",
        "Hintz",
        "Hoffmann",
        "Honecker",
        "Howaldt",
        "Huber",
        "Hünlein",
        "Ines",
        "Ingo",
        "Ineichen",
        "Jauch",
        "Jung",
        "Jörg",
        "Jakobi",
        "Kaiser",
        "Kästner",
        "Klaus",
        "Knebel",
        "Köhler",
        "Kolmar",
        "Körner",
        "Kosba",
        "Krämer",
        "Krause",
        "Krüger",
        "Krupp",
        "Kühn",
        "Kurz",
        "Lai",
        "Lammers",
        "Landgraf",
        "Landzettel",
        "Leber",
        "Lehmann",
        "Lehner",
        "Lenz",
        "Löchte",
        "Lohmann",
        "Lorenz",
        "Lücking",
        "Ludwig",
        "Luhmann",
        "Mach",
        "Marg",
        "Marx",
        "Meier",
        "Mester",
        "Meyer",
        "Micus",
        "Müller",
        "Naumann",
        "Neumann",
        "Nietzsche",
        "Noack",
        "Nordmann",
        "Ossege",
        "Oswald",
        "Otto",
        "Overbeck",
        "Peter",
        "Pfeiffer",
        "Pilsak",
        "Plagemann",
        "Pohl",
        "Pügner",
        "Preuß",
        "Quant",
        "Querfurt",
        "Rebahi",
        "Reich",
        "Resch",
        "Richter",
        "Rohlfs",
        "Rumpf",
        "Ruoff",
        "Sam",
        "Sander",
        "Sauerbruch",
        "Schäfer",
        "Schillung",
        "Schinder",
        "Schleich",
        "Schmid",
        "Schmidt",
        "Schmitt",
        "Schneider",
        "Schnorr",
        "Schnur",
        "Schnurr",
        "Schnurre",
        "Schnurrer",
        "Scholz",
        "Schubert",
        "Schultheiß",
        "Schulthess",
        "Schröder",
        "Schulz",
        "Schulze",
        "Schultz",
        "Selbmann",
        "Semper",
        "Siemens",
        "Sommer",
        "Sommerfeld",
        "Sonntag",
        "Sperner",
        "Steiner",
        "Sygnetzki",
        "Tannhäuser",
        "Tenberge",
        "Teuber",
        "Thode",
        "Thoma",
        "Thomas",
        "Thyssen",
        "Träger",
        "Türk",
        "Türck",
        "Vogt",
        "Voigt",
        "Voigtländer",
        "Weber",
        "Weck",
        "Wenzel",
        "Widera",
        "Wiegand",
        "Wieland",
        "Wiesel",
        "Winkler",
        "Wittgenstein",
        "Wolf",
        "Wolff",
        "Wolfram",
        "Wölkl",
        "Wurm",
        "Zacharias",
        "Zahn"
  };

  /* HINWEIS
     Zur Erzeugung von Zufallszahlen können Sie die Methode Math.random() verwenden 
     und zum Runden auf den nächsten long Wert die Methode Math.round(). 
     Um einen long Wert in einen int Wert zu konvertieren benötigen Sie den Castoperator (int).
     int i =  (int) Math.round(17.5); konvertiert das Ergebniss von Math.round() in einen int Wert

     Verwenden Sie in den JUnit Testimplementierungen die Methode split(String s) auf Strings,
     um einen Zeichenkette hinsichtlich eines Trennzeichens s in ein Array von Strings aufzuspalten.
     "Dies ist ein Satz, der aus einem Nebensatz besteht".split(",") liefert ein Array
     {"Dies ist ein Satz", " der aus einem Nebensatz besteht"}.
  */

  // TODO: zusätzliche Attribute

  // TODO: Methoden der Klasse
}
