/*
 * Copyright (c) 2019, Seqera Labs.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 *
 * This Source Code Form is "Incompatible With Secondary Licenses", as
 * defined by the Mozilla Public License, v. 2.0.
 */

package io.seqera.util

import groovy.transform.CompileStatic

/**
 * Helper class to create random names
 * 
 * @author Paolo Di Tommaso <paolo.ditommaso@gmail.com>
 */
@CompileStatic
class RandomNames {

    static final List<String> NAMES = [
            "abraham",
            "albert",
            "alejandro",
            "alex",
            "alexander",
            "alexandra",
            "alexis",
            "alison",
            "alvin",
            "amanda",
            "amos",
            "amy",
            "andres",
            "andy",
            "angel",
            "angelica",
            "angelina",
            "angelo",
            "anita",
            "ann",
            "anna",
            "anne",
            "annette",
            "anthony",
            "antoinette",
            "april",
            "archie",
            "armando",
            "ashley",
            "audrey",
            "austin",
            "barbara",
            "barry",
            "benny",
            "bernadette",
            "bernard",
            "bert",
            "bessie",
            "betty",
            "beulah",
            "beverly",
            "bill",
            "blanca",
            "bob",
            "bobby",
            "brad",
            "bradley",
            "brian",
            "bryan",
            "caleb",
            "cameron",
            "carl",
            "carlton",
            "carole",
            "carolyn",
            "carrie",
            "carroll",
            "cassandra",
            "catherine",
            "cathy",
            "cecil",
            "chester",
            "chris",
            "christian",
            "christina",
            "christine",
            "christopher",
            "christy",
            "cindy",
            "clara",
            "clarence",
            "claude",
            "claudia",
            "clay",
            "clayton",
            "clyde",
            "cody",
            "colleen",
            "connie",
            "constance",
            "cora",
            "corey",
            "cory",
            "cristina",
            "daisy",
            "dale",
            "dallas",
            "dan",
            "dana",
            "darin",
            "darryl",
            "david",
            "dean",
            "deborah",
            "delbert",
            "delia",
            "delores",
            "derrick",
            "desiree",
            "dewey",
            "diane",
            "dianne",
            "dominick",
            "donna",
            "dora",
            "doris",
            "dorothy",
            "douglas",
            "drew",
            "duane",
            "dustin",
            "earnest",
            "ebony",
            "edgar",
            "edith",
            "edmund",
            "eleanor",
            "elena",
            "elisa",
            "ella",
            "ellen",
            "ellis",
            "elmer",
            "eloise",
            "elsa",
            "emanuel",
            "emily",
            "erick",
            "erika",
            "ernest",
            "ernestine",
            "essie",
            "eugene",
            "eva",
            "evan",
            "evelyn",
            "everett",
            "faith",
            "fannie",
            "faye",
            "felicia",
            "felipe",
            "francis",
            "francisco",
            "frank",
            "franklin",
            "frederick",
            "gabriel",
            "garry",
            "geneva",
            "gerald",
            "gerard",
            "gertrude",
            "gilberto",
            "gina",
            "grace",
            "grant",
            "greg",
            "gregg",
            "gregory",
            "gretchen",
            "guadalupe",
            "guillermo",
            "harry",
            "harvey",
            "heather",
            "heidi",
            "helen",
            "henry",
            "hilda",
            "holly",
            "homer",
            "hope",
            "howard",
            "hugo",
            "ida",
            "inez",
            "irene",
            "iris",
            "isaac",
            "isabel",
            "ismael",
            "israel",
            "jackie",
            "jacquelyn",
            "jaime",
            "james",
            "jamie",
            "jan",
            "jana",
            "janice",
            "janie",
            "janis",
            "jared",
            "jasmine",
            "jason",
            "javier",
            "jay",
            "jean",
            "jeanne",
            "jeff",
            "jeffrey",
            "jenna",
            "jennie",
            "jeremiah",
            "jeremy",
            "jessica",
            "jessie",
            "jesus",
            "jim",
            "jimmie",
            "joann",
            "jodi",
            "jody",
            "joey",
            "johnnie",
            "jordan",
            "jose",
            "josefina",
            "joshua",
            "joy",
            "juan",
            "juana",
            "juanita",
            "judith",
            "judy",
            "julia",
            "julian",
            "justin",
            "karen",
            "karl",
            "kathleen",
            "kathy",
            "katie",
            "katrina",
            "kay",
            "kayla",
            "keith",
            "kelley",
            "kelli",
            "kenny",
            "kent",
            "kevin",
            "kim",
            "kirk",
            "krista",
            "kristine",
            "kurt",
            "lana",
            "laura",
            "laurence",
            "laurie",
            "lawrence",
            "lee",
            "lena",
            "leon",
            "leroy",
            "leslie",
            "lester",
            "leticia",
            "lewis",
            "lillie",
            "linda",
            "lionel",
            "lisa",
            "lloyd",
            "lois",
            "lola",
            "lonnie",
            "lorena",
            "lorenzo",
            "lori",
            "lowell",
            "lucille",
            "lucy",
            "luther",
            "luz",
            "lydia",
            "lynette",
            "lynn",
            "mabel",
            "mack",
            "mae",
            "maggie",
            "manuel",
            "marc",
            "marcia",
            "marco",
            "marcus",
            "margaret",
            "margarita",
            "margie",
            "maria",
            "marian",
            "marie",
            "marilyn",
            "marion",
            "mark",
            "marsha",
            "marshall",
            "marty",
            "marvin",
            "mary",
            "maryann",
            "mathew",
            "mattie",
            "max",
            "may",
            "meghan",
            "melanie",
            "melba",
            "melinda",
            "melissa",
            "melody",
            "meredith",
            "merle",
            "michael",
            "micheal",
            "michele",
            "michelle",
            "mildred",
            "milton",
            "mindy",
            "monique",
            "moses",
            "muriel",
            "myrtle",
            "nadine",
            "natasha",
            "nathaniel",
            "nellie",
            "nelson",
            "nichole",
            "nick",
            "norman",
            "olga",
            "oliver",
            "olivia",
            "ollie",
            "opal",
            "ora",
            "orlando",
            "otis",
            "owen",
            "pablo",
            "pamela",
            "pat",
            "patricia",
            "patrick",
            "patsy",
            "paul",
            "pauline",
            "pearl",
            "peggy",
            "penny",
            "percy",
            "pete",
            "peter",
            "phil",
            "philip",
            "preston",
            "priscilla",
            "rachael",
            "rafael",
            "ralph",
            "ramiro",
            "randall",
            "randolph",
            "raquel",
            "raul",
            "ray",
            "regina",
            "rex",
            "rhonda",
            "rick",
            "ricky",
            "robert",
            "roberta",
            "robin",
            "rodney",
            "rodolfo",
            "rolando",
            "ron",
            "ronald",
            "roosevelt",
            "rosa",
            "rosalie",
            "rosemary",
            "rosie",
            "roxanne",
            "roy",
            "rudolph",
            "rudy",
            "sadie",
            "salvatore",
            "sam",
            "samantha",
            "sammy",
            "samuel",
            "sandra",
            "santos",
            "shannon",
            "shaun",
            "shawn",
            "sheldon",
            "shelly",
            "sherman",
            "sherri",
            "silvia",
            "sonja",
            "sophia",
            "spencer",
            "stanley",
            "stephanie",
            "stephen",
            "steven",
            "sue",
            "susan",
            "susie",
            "tamara",
            "tami",
            "tasha",
            "ted",
            "terence",
            "teri",
            "terrance",
            "terri",
            "theodore",
            "theresa",
            "thomas",
            "tiffany",
            "tim",
            "tina",
            "todd",
            "tom",
            "tommie",
            "tommy",
            "tony",
            "tonya",
            "tracey",
            "traci",
            "tracy",
            "travis",
            "troy",
            "velma",
            "vera",
            "verna",
            "vernon",
            "vicki",
            "vickie",
            "victor",
            "viola",
            "violet",
            "virgil",
            "wallace",
            "walter",
            "wanda",
            "wendy",
            "wesley",
            "wilbur",
            "willard",
            "willie",
            "willis",
            "winifred",
            "yvette",
            "yvonne"
    ]

    private static Random rnd = new Random()

    static String get() { NAMES[rnd.nextInt(NAMES.size())] }
}
