Repository: cayenne
Updated Branches:
refs/heads/master 9b9b5e0f9 -> 161b1469f
remove dependency on org.fluttercode.datafactory:datafactory
Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/161b1469
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/161b1469
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/161b1469
Branch: refs/heads/master
Commit: 161b1469fecd28462ee84ebfd1f4e981ba640070
Parents: 9b9b5e0
Author: kolonitsky <Alex.Kolonitsky@gmail.com>
Authored: Thu Feb 26 10:40:49 2015 +0300
Committer: kolonitsky <Alex.Kolonitsky@gmail.com>
Committed: Thu Feb 26 10:47:37 2015 +0300
----------------------------------------------------------------------
cayenne-server/pom.xml | 5 -
.../datafactory/CombinedValueProvider.java | 25 +
.../apache/cayenne/datafactory/DataFactory.java | 407 +++++++++++
.../datafactory/DictionaryValueProvider.java | 104 +++
.../cayenne/datafactory/ValueProvider.java | 707 +++++++++++++++++++
.../merge/builders/DbAttributeBuilder.java | 11 +-
.../cayenne/merge/builders/DefaultBuilder.java | 2 +-
cayenne-tools/pom.xml | 5 -
pom.xml | 7 -
9 files changed, 1254 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-server/pom.xml b/cayenne-server/pom.xml
index 3cede8e..d00cd8c 100644
--- a/cayenne-server/pom.xml
+++ b/cayenne-server/pom.xml
@@ -149,11 +149,6 @@
<scope>test</scope>
</dependency>
<dependency>
- <groupId>org.fluttercode.datafactory</groupId>
- <artifactId>datafactory</artifactId>
- <scope>test</scope>
- </dependency>
- <dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<scope>test</scope>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/datafactory/CombinedValueProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/datafactory/CombinedValueProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/CombinedValueProvider.java
new file mode 100644
index 0000000..518c9c3
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/CombinedValueProvider.java
@@ -0,0 +1,25 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.datafactory;
+
+/**
+ * @since 4.0
+ */
+public class CombinedValueProvider {
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DataFactory.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DataFactory.java b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DataFactory.java
new file mode 100644
index 0000000..921f4fb
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DataFactory.java
@@ -0,0 +1,407 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.datafactory;
+
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Random;
+
+/**
+ * @since 4.0
+ */
+public class DataFactory {
+
+ private Random random = ValueProvider.RANDOM;
+
+ /**
+ * @return A random first name
+ */
+ public String getFirstName() {
+ return ValueProvider.FIRST_NAMES.randomValue();
+ }
+
+ /**
+ * @return a combination of first and last name values in one string
+ */
+ public String getName() {
+ return getFirstName() + " " + getLastName();
+ }
+
+ /**
+ * @return A random last name
+ */
+ public String getLastName() {
+ return ValueProvider.LAST_NAMES.randomValue();
+ }
+
+ /**
+ * @return A random street name
+ */
+ public String getStreetName() {
+ return ValueProvider.STREET_NAMES.randomValue();
+ }
+
+ /**
+ * @return A random street suffix
+ */
+ public String getStreetSuffix() {
+ return ValueProvider.ADDRESS_SUFFIXES.randomValue();
+ }
+
+ /**
+ * @return City as a string
+ */
+ public String getCity() {
+ return ValueProvider.CITIES.randomValue();
+ }
+
+ /**
+ * Generates an address value consisting of house number, street name and
+ * street suffix. i.e. <code>543 Larkhill Road</code>
+ *
+ * @return Address as a string
+ */
+ public String getAddress() {
+ int num = 404 + random.nextInt(1400);
+ return num + " " + getStreetName() + " " + getStreetSuffix();
+ }
+
+ /**
+ * Generates line 2 for a street address (usually an Apt. or Suite #).
+ * Returns default value if the probabilty test fails.
+ *
+ * @return Street address line 2
+ */
+ public String getAddressLine2() {
+ int test = random.nextInt(100);
+ if (test < 50) {
+ return "Apt #" + 100 + random.nextInt(1000);
+ } else {
+ return "Suite #" + 100 + random.nextInt(1000);
+ }
+ }
+
+ /**
+ * Creates a random birthdate within the range of 1955 to 1985
+ *
+ * @return Date representing a birthdate
+ */
+ public Date getBirthDate() {
+ Date base = new Date(0);
+ return getDate(base, -365 * 15, 365 * 15);
+ }
+
+ /**
+ * Returns a random int value.
+ *
+ * @return random number
+ */
+ public int getNumber() {
+ return getNumberBetween(Integer.MIN_VALUE, Integer.MAX_VALUE);
+ }
+
+ /**
+ * Returns a random number between 0 and max
+ *
+ * @param max
+ * Maximum value of result
+ * @return random number no more than max
+ */
+ public int getNumberUpTo(int max) {
+ return getNumberBetween(0, max);
+ }
+
+ /**
+ * Returns a number betwen min and max
+ *
+ * @param min
+ * minimum value of result
+ * @param max
+ * maximum value of result
+ * @return Random number within range
+ */
+ public int getNumberBetween(int min, int max) {
+
+ if (max < min) {
+ throw new IllegalArgumentException(String.format(
+ "Minimum must be less than minimum (min=%d, max=%d)", min,
+ max));
+ }
+
+ return min + random.nextInt(max - min);
+ }
+
+ /**
+ * Builds a date from the year, month, day values passed in
+ *
+ * @param year
+ * The year of the final {@link Date} result
+ * @param month
+ * The month of the final {@link Date} result (from 1-12)
+ * @param day
+ * The day of the final {@link Date} result
+ * @return Date representing the passed in values.
+ */
+ public Date getDate(int year, int month, int day) {
+ Calendar cal = Calendar.getInstance();
+ cal.clear();
+ cal.set(year, month - 1, day, 0, 0, 0);
+ return cal.getTime();
+ }
+
+ /**
+ * Returns a random date which is in the range <code>baseData</code> +
+ * <code>minDaysFromData</code> to <code>baseData</code> +
+ * <code>maxDaysFromData</code>. This method does not alter the time
+ * component and the time is set to the time value of the base date.
+ *
+ * @param baseDate
+ * Date to start from
+ * @param minDaysFromDate
+ * minimum number of days from the baseDate the result can be
+ * @param maxDaysFromDate
+ * maximum number of days from the baseDate the result can be
+ * @return A random date
+ */
+ public Date getDate(Date baseDate, int minDaysFromDate, int maxDaysFromDate) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(baseDate);
+ int diff = minDaysFromDate
+ + (random.nextInt(maxDaysFromDate - minDaysFromDate));
+ cal.add(Calendar.DATE, diff);
+ return cal.getTime();
+ }
+
+ /**
+ * Returns a random date between two dates. This method will alter the time
+ * component of the dates
+ *
+ * @param minDate
+ * Minimum date that can be returned
+ * @param maxDate
+ * Maximum date that can be returned
+ * @return random date between these two dates.
+ */
+ public Date getDateBetween(Date minDate, Date maxDate) {
+ // this can break if seconds is an int
+ long seconds = (maxDate.getTime() - minDate.getTime()) / 1000;
+ seconds = (long) (random.nextDouble() * seconds);
+ Date result = new Date();
+ result.setTime(minDate.getTime() + (seconds * 1000));
+ return result;
+ }
+
+ /**
+ * Returns random text made up of english words of length
+ * <code>length</code>
+ *
+ * @param length
+ * length of returned string
+ *
+ * @return string made up of actual words with length <code>length</code>
+ */
+ public String getRandomText(int length) {
+ return getRandomText(length, length);
+ }
+
+ /**
+ * Returns random text made up of english words
+ *
+ * @param minLength
+ * minimum length of returned string
+ * @param maxLength
+ * maximum length of returned string
+ * @return string of length between min and max length
+ */
+ public String getRandomText(int minLength, int maxLength) {
+ validateMinMaxParams(minLength, maxLength);
+
+ StringBuilder sb = new StringBuilder(maxLength);
+ int length = minLength;
+ if (maxLength != minLength) {
+ length = length + random.nextInt(maxLength - minLength);
+ }
+ while (length > 0) {
+ if (sb.length() != 0) {
+ sb.append(" ");
+ length--;
+ }
+ String word = getRandomWord();
+ sb.append(word);
+ length = length - word.length();
+ }
+
+ if (sb.length() < maxLength) {
+ return sb.toString();
+ } else {
+ return sb.substring(0, maxLength);
+ }
+ }
+
+ private void validateMinMaxParams(int minLength, int maxLength) {
+ if (minLength < 0) {
+ throw new IllegalArgumentException("Minimum length must be a non-negative number");
+ }
+
+ if (maxLength < 0) {
+ throw new IllegalArgumentException("Maximum length must be a non-negative number");
+ }
+
+ if (maxLength < minLength) {
+ throw new IllegalArgumentException(
+ String.format(
+ "Minimum length must be less than maximum length (min=%d, max=%d)",
+ minLength, maxLength));
+ }
+ }
+
+ /**
+ * @return a random character
+ */
+ public char getRandomChar() {
+ return (char) (random.nextInt(26) + 'a');
+ }
+
+ /**
+ * Return a string containing <code>length</code> random characters
+ *
+ * @param length
+ * number of characters to use in the string
+ * @return A string containing <code>length</code> random characters
+ */
+ public String getRandomChars(int length) {
+ return getRandomChars(length, length);
+ }
+
+ /**
+ * Return a string containing between <code>length</code> random characters
+ *
+ * @param maxLength max number of characters to use in the string
+ * @param minLength min number of characters to use in the string
+ * @return A string containing <code>length</code> random characters
+ */
+ public String getRandomChars(int minLength, int maxLength) {
+ validateMinMaxParams(minLength, maxLength);
+ StringBuilder sb = new StringBuilder(maxLength);
+
+ int length = minLength;
+ if (maxLength != minLength) {
+ length = length + random.nextInt(maxLength - minLength);
+ }
+ while (length > 0) {
+ sb.append(getRandomChar());
+ length--;
+ }
+ return sb.toString();
+ }
+
+ /**
+ * Returns a word of a length between 1 and 10 characters.
+ *
+ * @return A work of max length 10
+ */
+ public String getRandomWord() {
+ return ValueProvider.WORDS.randomValue();
+ }
+
+ /**
+ *
+ * @param chance
+ * Chance of a suffix being returned
+ * @return
+ */
+ public String getSuffix(int chance) {
+ return ValueProvider.suffixes.randomValue(chance);
+ }
+
+ /**
+ * Return a person prefix or null if the odds are too low.
+ *
+ * @param chance
+ * Odds of a prefix being returned
+ * @return Prefix string
+ */
+ public String getPrefix(int chance) {
+ return ValueProvider.prefixes.randomValue(chance);
+ }
+
+ /**
+ * Returns a string containing a set of numbers with a fixed number of
+ * digits
+ *
+ * @param digits
+ * number of digits in the final number
+ * @return Random number as a string with a fixed length
+ */
+ public String getNumberText(int digits) {
+ StringBuilder result = new StringBuilder(digits);
+ for (int i = 0; i < digits; i++) {
+ result.append(random.nextInt(10));
+ }
+ return result.toString();
+ }
+
+ /**
+ * Generates an email address
+ *
+ * @return an email address
+ */
+ public String getEmailAddress() {
+ return getLogin() + "@" + ValueProvider.EMAIL_HOSTS.randomValue() + "." + ValueProvider.TLDS.randomValue();
+ }
+
+ public String getLogin() {
+ int test = random.nextInt(100);
+
+ String login;
+ if (test < 20) {
+ login = getFirstName().charAt(0) + getLastName();
+ } else if (test < 40) {
+ login = getFirstName() + "." + getLastName();
+ } else if (test < 45) {
+ login = getFirstName() + "_" + getLastName();
+ } else if (test < 55) {
+ login = getLastName();
+ } else {
+ login = getRandomWord() + getRandomWord();
+ }
+
+ if (random.nextInt(100) > 80) {
+ login = login + random.nextInt(100);
+ }
+
+ return login;
+ }
+
+ public boolean chance(int chance) {
+ return random.nextInt(100) < chance;
+ }
+
+ /**
+ * Call randomize with a seed value to reset the random number generator. By
+ * using the same seed over different tests, you will should get the same
+ * results out for the same data generation calls.
+ *
+ * @param seed
+ * Seed value to use to generate random numbers
+ */
+ public void randomize(int seed) {
+ random = new Random(seed);
+ }
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DictionaryValueProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DictionaryValueProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DictionaryValueProvider.java
new file mode 100644
index 0000000..163f34c
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/DictionaryValueProvider.java
@@ -0,0 +1,104 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.datafactory;
+
+import java.util.Random;
+
+/**
+ * @since 4.0
+ */
+public abstract class DictionaryValueProvider<T> implements ValueProvider<T> {
+
+ private Random random = ValueProvider.RANDOM;
+
+ public DictionaryValueProvider(Random random) {
+ this.random = random;
+ }
+
+ /**
+ * Returns a random item from an array of items
+ *
+ * @return Item from the array
+ */
+ public T randomValue() {
+ return randomValue(100, null);
+ }
+
+ /**
+ * Returns a random item from an array of items or null depending on the
+ * probability parameter. The probability determines the chance (in %) of
+ * returning an item from the array versus null.
+ *
+ * @param probability
+ * chance (in %, 100 being guaranteed) of returning an item from
+ * the array
+ * @return Item from the array or the default value
+ */
+ public T randomValue(int probability) {
+ return randomValue(probability, null);
+ }
+
+ /**
+ * Returns a random item from an array of items or the defaultItem depending
+ * on the probability parameter. The probability determines the chance (in
+ * %) of returning an item from the array versus the default value.
+ *
+ * @param probability
+ * chance (in %, 100 being guaranteed) of returning an item from
+ * the array
+ * @param defaultItem
+ * value to return if the probability test fails
+ * @return Item from the array or the default value
+ */
+ public T randomValue(int probability, T defaultItem) {
+ if (values() == null) {
+ throw new IllegalArgumentException("Item array cannot be null");
+ }
+ if (values().length == 0) {
+ throw new IllegalArgumentException("Item array cannot be empty");
+ }
+ return chance(probability) ? values()[random.nextInt(values().length)] : defaultItem;
+ }
+
+ /**
+ * Gives you a true/false based on a probability with a random number
+ * generator. Can be used to optionally add elements.
+ *
+ * <pre>
+ * if (DataFactory.chance(70)) {
+ * // 70% chance of this code being executed
+ * }
+ * </pre>
+ *
+ * @param chance
+ * % chance of returning true
+ * @return
+ */
+ public boolean chance(int chance) {
+ return random.nextInt(100) < chance;
+ }
+
+ @Override
+ public void setRandom(Random random) {
+ this.random = random;
+ }
+
+ protected abstract T[] values();
+
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/datafactory/ValueProvider.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/datafactory/ValueProvider.java b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/ValueProvider.java
new file mode 100644
index 0000000..e93bda7
--- /dev/null
+++ b/cayenne-server/src/test/java/org/apache/cayenne/datafactory/ValueProvider.java
@@ -0,0 +1,707 @@
+/*****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ ****************************************************************/
+package org.apache.cayenne.datafactory;
+
+import java.util.Random;
+
+/**
+ * @since 4.0
+ */
+public interface ValueProvider<T> {
+ Random RANDOM = new Random();
+
+ ValueProvider<String> STREET_NAMES = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Aberdeen", "Abington", "Academy",
+ "Adair", "Adams", "Adamsville", "Aeryview", "Agines", "Airport",
+ "Airwood", "Akron", "Alameda", "Albert", "Albright", "Alburn",
+ "Alexis", "Alfred", "Alice", "Alkire", "Allen", "Allison", "Alvin",
+ "Ambarassdor", "Amber", "Amhurst", "Amsterdam", "Antigua",
+ "Applegate", "Arborwood", "Arcadia", "Arch", "Archer", "Arlington",
+ "Armco", "Armstrong", "Arnold", "Arrowhead", "Arthur", "Ashburton",
+ "Ashley", "Aspen", "Athena", "Athens", "Atlantic", "Auburn",
+ "Austin", "Avalon", "Avon", "Axline", "Ayers", "Babbs", "Back",
+ "Bagley", "Bailey", "Baird", "Baker", "Ball", "Ballard", "Ballov",
+ "Bank", "Bardith", "Barkey", "Barkley", "Barnes", "Barr", "Basil",
+ "Basin", "Bateman", "Baughman", "Beam", "Beard", "Beatty",
+ "Beauty", "Beech", "Beechcreek", "Beechmont", "Beeline", "Belden",
+ "Bell", "Bellflower", "Bellview", "Bellwood", "Belmont",
+ "Benjamin", "Bennett", "Benwood", "Berkley", "Best", "Bethesda",
+ "Beulah", "Beverly", "Bexley", "Billingsley", "Bissett", "Bisson",
+ "Black", "Blackburn", "Blackrun", "Blackstone", "Blackwood",
+ "Blaine", "Blalock", "Blandy", "Blennerhassett", "Blocksom",
+ "Bloomfield", "Blossom", "Blue", "Bluff", "Bobby", "Bodmann",
+ "Boggs", "Bolen", "Bolton", "Bonaparte", "Bonifield", "Bonnair",
+ "Bonsels", "Boston", "Bottom", "Bowman", "Bowser", "Bowtown",
+ "Bradington", "Branch", "Brandywine", "Breezewood", "Brewers",
+ "Briarbush", "Briarcliff", "Briarleigh", "Brick", "Bridge",
+ "Brighton", "Brill", "Bristol", "Britton", "Broad", "Broadvue",
+ "Broadway", "Brookfield", "Brookover", "Brookside", "Brown",
+ "Browns", "Bryan", "Buck", "Buckeye", "Buckingham", "Burbank",
+ "Burlington", "Burnell", "Burnet", "Burns", "Busch", "Butler",
+ "Butter", "Buttermilk", "Byrne", "Caleb", "Calvert", "Cambon",
+ "Cambridge", "Camden", "Camp", "Campbell", "Canal", "Candlestick",
+ "Canewood", "Canfield", "Cannelville", "Canneville", "Cannon",
+ "Carbondale", "Carey", "Carl", "Carlisle", "Carlton", "Carlysle",
+ "Carmen", "Carol", "Carpenter", "Carroll", "Carson", "Carver",
+ "Cass", "Caston", "Castor", "Catalpa", "Cathy", "Catt", "Cattail",
+ "Cattle", "Cecil", "Cedar", "Cedarhurst", "Celina", "Cementary",
+ "Cemetery", "Center", "Central", "Ceramic", "Chalfant",
+ "Chandlersville", "Chapman", "Chardon", "Charlene", "Charles",
+ "Chase", "Chatauqua", "Chatham", "Cheney", "Cherlick", "Cherry",
+ "Chesapeake", "Chester", "Chesterfield", "Chestnut", "Chevington",
+ "Chewelah", "Childrens", "Chillicothe", "China", "Choctaw",
+ "Christopher", "Christy", "Church", "Churchfield", "Circle",
+ "Circleville", "Clairbourne", "Claire", "Clarence", "Clarendon",
+ "Clarice", "Clark", "Clary", "Clay", "Claysville", "Clearcreek",
+ "Clearey", "Clearport", "Clearview", "Cleve", "Cleveland",
+ "Clevenger", "Cliffrock", "Cliffwood", "Clinton", "Clover",
+ "Cloveridge", "Clyde", "Coburg", "Cochran", "Codell", "Cohen",
+ "Colburn", "College", "Collingwood", "Collins", "Colony",
+ "Columbia", "Columbus", "Comin", "Commissioner", "Commonwealth",
+ "Conn", "Convers", "Coopermill", "Cooperriders", "Cooperwell",
+ "Cornell", "Cornstill", "Coronado", "Corvus", "Corwin", "Cosgrave",
+ "Coshocton", "Cottage", "Countiss", "Countryside", "Court", "Cove",
+ "Coventry", "Cowden", "Cranfield", "Crawford", "Creamery",
+ "Creedmoor", "Creekview", "Crestway", "Crock", "Crooks", "Crosier",
+ "Cross", "Crossgate", "Crow", "Crown", "Culbertson", "Curtis",
+ "Dads", "Daisy", "Dale", "Dallman", "Dana", "Daniels", "Danville",
+ "Darcie", "Darla", "Darlington", "Date", "Davis", "Dawnlight",
+ "Dawson", "Dearborn", "December", "Decrow", "Deer", "Deerfield",
+ "Deerpath", "Deewood", "Dellwood", "Delmont", "Delwood", "Denbigh",
+ "Denlinger", "Denmark", "Denning", "Dennis", "Denny", "Depot",
+ "Detroit", "Devin", "Devlin", "Dewey", "Diagonal", "Dickinson",
+ "Dickson", "Dietz", "Dillon", "Discovery", "Dixie", "Dixon",
+ "Dogwood", "Dona", "Donald", "Dooleys", "Dorothy", "Doru",
+ "Douglas", "Dowling", "Downard", "Downing", "Dragoo", "Dresden",
+ "Dryden", "Dundee", "Dunham", "Dunzweiler", "Durban", "Duvall",
+ "Dyer", "East", "Easter", "Eastern", "Eastfield", "Eastlawn",
+ "Eastman", "Eastmoor", "Eastport", "Eastview", "Eastward",
+ "Eastwood", "Eaton", "Echo", "Edalbert", "Eddie", "Eddy", "Ederer",
+ "Edgewater", "Edison", "Edna", "Edward", "Edwards", "Eldwood",
+ "Elfin", "Elida", "Elizabeth", "Ellen", "Eller", "Ellis",
+ "Ellsworth", "Elmville", "Emily", "Englewood", "Enon", "Eppley",
+ "Erie", "Erin", "Essex", "Euclid", "Evans", "Evansport", "Evelyn",
+ "Evergreen", "Ewing", "Exchange", "Extension", "Fair", "Fairall",
+ "Fairbanks", "Faircrest", "Fairmont", "Fairmount", "Fairview",
+ "Fairway", "Fallsburg", "Falt", "Farson", "Fawn", "Faye",
+ "Fayette", "Federal", "Ferncliff", "Fernstone", "Ferrell", "Fess",
+ "Field", "Findley", "First", "Fishers", "Fitzgerald", "Fleek",
+ "Fleming", "Flint", "Flintridge", "Flintwood", "Florence",
+ "Forest", "Forry", "Foster", "Founds", "Fountain", "Fowlers",
+ "Foxfire", "Frame", "Francis", "Franklin", "Frazeysburg",
+ "Freeborn", "Freedom", "Frick", "Friendship", "Frisco", "Fritter",
+ "Front", "Frontier", "Fulbrook", "Fulton", "Fultonrose",
+ "Galbraith", "Galena", "Galigher", "Galighner", "Gallia", "Galway",
+ "Gant", "Gantz", "Garden", "Gardenway", "Garey", "Garfield",
+ "Garner", "Garrell", "Garrett", "Garst", "Gaslight", "Gayla",
+ "Genessee", "George", "Gest", "Gibbard", "Gifford", "Gilbert",
+ "Glade", "Glena", "Glenaven", "Glendale", "Glenhaven", "Glenn",
+ "Glenwillow", "Glenwood", "Glessner", "Goddard", "Gomber",
+ "Goosecreek", "Gordon", "Gorrell", "Gorsuch", "Goslen", "Grace",
+ "Graffis", "Grand", "Grandview", "Granger", "Grant", "Granville",
+ "Gratiot-Newark", "Gray", "Graylock", "Green", "Greenbriar",
+ "Greenbrier", "Greengold", "Greenhouse", "Greenville", "Greenwood",
+ "Greiner", "Grieves", "Grove", "Guava", "Haessler", "Hale", "Hall",
+ "Hamburg", "Hamilton", "Hamline", "Hampton", "Hanawalt", "Hannah",
+ "Hannawalt", "Hanover", "Hanson", "Harbor", "Hardesty", "Harding",
+ "Hardy", "Harkers", "Harlan", "Harmon", "Harmony", "Harper",
+ "Harris", "Harrison", "Harshman", "Hartford", "Hartman",
+ "Hartville", "Hartwell", "Harvey", "Haught", "Hawk", "Hawkes",
+ "Hayes", "Hazel", "Hazlett", "Heath", "Heber", "Hebron", "Heckak",
+ "Heckel", "Hedgewood", "Helene", "Helpar", "Hendershot", "Henry",
+ "Heritage", "Herron", "Hewitt", "Hickam", "Hickman", "Hickory",
+ "Hicks", "Hideaway", "Higgins", "High", "Highland", "Highview",
+ "Hilbish", "Hildreth", "Hill", "Hinman", "Hogans", "Hoge",
+ "Hoiles", "Holbein", "Holbert", "Holliday", "Holmes", "Home",
+ "Homeless", "Homer", "Homes", "Homestead", "Homewood", "Hoover",
+ "Hopewell", "Hospital", "Howard", "Howell", "Hudson", "Huey",
+ "Hughes", "Humphrey", "Hunt", "Hunter", "Hunterdon", "Huntington",
+ "Idaho", "Idlewood", "Ildewood", "Iliamna", "Imlay",
+ "Independence", "Indiana", "Indianola", "Inwood", "Ireland",
+ "Iron", "Island", "Jackson", "James", "Jamestown", "Jannett",
+ "Jefferson", "Jenkins", "Jensen", "Jessamine", "Jewett", "Jewitt",
+ "Jody", "John", "Johnson", "Johnstown", "Jonathan", "Jones",
+ "Jordan", "Joyce", "Juanita", "Julian", "Juniper", "Kahler",
+ "Katherine", "Kauffman", "Kearns", "Keen", "Kegs", "Kelly",
+ "Kennedy", "Kenny", "Kensington", "Kenton", "Kerri", "Kettering",
+ "Kevrob", "Keystone", "Kibler", "Kimes", "King", "Kings",
+ "Kingsley", "Kingswood", "Kinsman", "Kinzel", "Kirk", "Klotz",
+ "Knipe", "Knox", "Kopchak", "Kossuch", "Lacon", "Lafayette",
+ "Lagonda", "Lake", "Lakeside", "Lakewood", "Lambert", "Lancaster",
+ "Lancaster-Chillicoth", "Lander", "Laneway", "Langan", "Lark",
+ "Larkspur", "Larry", "Larzelere", "Lasalle", "Lashley", "Laurel",
+ "Lavona", "Lawhead", "Lawn", "Lawndale", "Lawson", "Lawyers",
+ "Layton", "Lazelere", "Lectric", "Ledbetter", "Leedom", "Leffler",
+ "Lefter", "Legion", "Lenox", "Lent", "Leon", "Leonard",
+ "Leonardville", "Leslie", "Lesslar", "Lewis", "Lexington",
+ "Liberty", "Licking", "Lillian", "Lima", "Limestone", "Lincoln",
+ "Lincolnway", "Lindale", "Lindbergh", "Linden", "Lindsay", "Linn",
+ "Linwood", "Lisa", "Lithopolis", "Livingston", "Lock", "Locksmith",
+ "Locust", "Lodge", "Lomita", "London", "Long", "Lookout", "Lost",
+ "Loudon", "Louise", "Lovers", "Lubring", "Lucas", "Lucasburg",
+ "Luck", "Lundgren", "Lutz", "Macedonia", "Mackenzie", "Madison",
+ "Mailey", "Main", "Malibu", "Manning", "Manor", "Mansfield",
+ "Maple", "Maplecraft", "Mapleview", "Maplewood", "Marchmont",
+ "Marietta", "Marion", "Mark", "Market", "Marketing", "Marlo",
+ "Marne", "Marsha", "Marshdale", "Martin", "Martinel", "Mary",
+ "Mast", "Matthews", "Mayfair", "Maysville", "Mcarthur", "Mccarley",
+ "Mccaslin", "Mcclain", "Mcclure", "Mcconnell", "Mcconnellsville",
+ "Mcdaniel", "Mcdonald", "Mcfarland", "Mcintire", "Mckaig",
+ "Mckeever", "Mckinley", "Mcmillan", "Mcowens", "Mead", "Meadow",
+ "Meadowbrook", "Meadowhaven", "Meadowood", "Mechanicsburg", "Meek",
+ "Melick", "Melrose", "Memory", "Meridian", "Meriwether", "Merlin",
+ "Merriam", "Merrick", "Merrimac", "Merryhill", "Mershon",
+ "Messimer", "Metro", "Miami", "Michael", "Michigan", "Middle",
+ "Middlefork", "Middleton", "Midway", "Milagra", "Military", "Mill",
+ "Miller", "Millers", "Milton", "Miner", "Missouri", "Mitchell",
+ "Moccasin", "Mock", "Mohawk", "Mollysrock", "Mona", "Monroe",
+ "Montague", "Montgomery", "Moonlight", "Moore", "Moorehead",
+ "Moores", "Moorewood", "Morgan", "Morgantown", "Morganville",
+ "Morningstar", "Morrison", "Morse", "Mound", "Moxadarla",
+ "Moxahala", "Muirwood", "Mulberry", "Mundy", "Munson", "Murray",
+ "Muskingum", "Musselman", "Myrtle", "Nancy", "Narrows", "National",
+ "Navy", "Neal", "Neil", "Nelson", "Neptune", "Newark", "Newgate",
+ "Newlon", "Newman", "Newport", "Nichalas", "Nolan", "None",
+ "Nor-Bixbey", "Nora", "Norfield", "Normandy", "Norris", "North",
+ "Northcrest", "Northland", "Norwich", "Norwood", "Nottingham",
+ "Nottinghamshire", "Nugent", "Oakland", "Oakwood", "Obetz",
+ "Odell", "Ohio", "Okey", "Olive", "Olney", "Ontario", "Opera",
+ "Orange", "Orchard", "Orders", "Orton", "Osage", "Osceola",
+ "Otterbein", "Overlook", "Owens", "Oxford", "Paint", "Palamino",
+ "Pallas", "Palmer", "Palmeraway", "Palmwood", "Palomino",
+ "Paragon", "Parish", "Park", "Parker", "Parks", "Parkview",
+ "Parkway", "Parkwood", "Parliament", "Parry", "Partridge", "Patch",
+ "Patricia", "Peachblow", "Pear", "Pearl", "Pembroke", "Penn",
+ "Penney", "Pennisula", "Pennsylvania", "Penrick", "Perdue",
+ "Perine", "Perkins", "Perry", "Perryton", "Pershing", "Peters",
+ "Petersburg", "Peterson", "Pfeifer", "Pfeiffer", "Philadelphia",
+ "Phillips", "Pickwick", "Pierce", "Pike", "Pine", "Pinecrest",
+ "Pinetown", "Pineview", "Pinewood", "Pinkerton", "Pinkley",
+ "Pioneer", "Piper", "Plainfield", "Plantation", "Playford",
+ "Pleasant", "Pleasantview", "Pleasantville", "Pointe", "Poplar",
+ "Portage", "Porter", "Portland", "Potters", "Potts", "Powell",
+ "Prame", "Pratt", "Price", "Princeton", "Prior", "Prison",
+ "Promway", "Prospect", "Pryor", "Public", "Purdy", "Purvis",
+ "Putnam", "Quarry", "Quick", "Quincy", "Quinlan", "Race", "Radnor",
+ "Raiders", "Railroad", "Rains", "Raintree", "Range", "Rankin",
+ "Ransbottom", "Raven", "Ravenwood", "Rawson", "Reading", "Ream",
+ "Redman", "Redondo", "Reed", "Reeves", "Rehl", "Restless",
+ "Reynolds", "Rhonda", "Rice", "Richards", "Richey", "Richman",
+ "Richmond", "Richvale", "Richwood", "Rider", "Ridge", "Ridgefield",
+ "Ridgeland", "Ridgeview", "Ridgewood", "Rigby", "Riggin", "Rigny",
+ "Ritchey", "Ritenour", "River", "Riverside", "Riverview",
+ "Roadayle", "Robertson", "Robin", "Robinson", "Robinwood", "Rock",
+ "Rockville", "Roemer", "Roland", "Rollins", "Rondayle",
+ "Roosevelt", "Roper", "Rose", "Roseville", "Rosewood", "Rowland",
+ "Royalton", "Royma", "Rucker", "Runyan", "Russell", "Rustle",
+ "Ruth", "Ryan", "Salem", "Salgarber", "Sally", "Saltzgaber",
+ "Sampson", "Samuel", "Sand", "Sandhurst", "Sandra", "Sandusky",
+ "Sandvik", "Santoy", "Sarah", "Scarborough", "Scenic", "Schaum",
+ "Schneider", "Scholl", "School", "Schuler", "Schultz", "Schwallie",
+ "Scott", "Scout", "Sealover", "Seaman", "Seborn", "Sells",
+ "Selsam", "Senator", "Seroco", "Sevall", "Severt", "Seward",
+ "Seymore", "Shady", "Shagbark", "Shaliman", "Shandon", "Sharon",
+ "Sharonwood", "Shasta", "Shaw", "Shawnee", "Sheandoah", "Sheila",
+ "Shellhart", "Shenandoah", "Shepherd", "Sherborne", "Sheridan",
+ "Sherman", "Sherwood", "Shindern", "Shinick", "Shinnick",
+ "Shiplett", "Shoop", "Shore", "Short", "Shumaker", "Sibley",
+ "Silliman", "Silmore", "Skyline", "Skyview", "Slack", "Smithfield",
+ "Smithwood", "Snoke", "Snyder", "Sofin", "Solida", "Somers",
+ "Somerset", "Sonora", "Souder", "South", "Southard", "Southeast",
+ "Southern", "Southward", "Spangler", "Sparling", "Spellman",
+ "Spence", "Spencer", "Spielbusch", "Spratt", "Spring",
+ "Springdale", "Spruce", "Spry", "Stacy", "Stalder", "Stalling",
+ "Stanley", "Stansberry", "Stanton", "Stanway", "State", "Steele",
+ "Stein", "Stephens", "Stevens", "Stevy", "Stewart", "Stiers",
+ "Stillmeadow", "Stillwell", "Stine", "Stiver", "Stokely", "Stone",
+ "Stonecreek", "Stormont", "Stout", "Stoutsville", "Strawberry",
+ "Street", "Sturtz", "Stygler", "Sudbury", "Sugargrove",
+ "Sugartree", "Summit", "Sundale", "Sunflower", "Sunkel", "Sunray",
+ "Sunrise", "Sunset", "Superior", "Surger", "Swans", "Swartz",
+ "Swingle", "Sycamore", "Talford", "Talley", "Tamarron", "Tammy",
+ "Tannehill", "Tarkman", "Taylor", "Teakwood", "Tedrick", "Temple",
+ "Terrace", "Terry", "Theobald", "Third", "Thomas", "Thompson",
+ "Thorn", "Thornberry", "Thornhill", "Thurman", "Tiffany",
+ "Tileston", "Titus", "Todd", "Toni", "Towers", "Town", "Trabue",
+ "Traci", "Traco", "Tranquility", "Treehouse", "Tremont", "Trend",
+ "Tridelphia", "Tupedo", "Turner", "Turtle", "Tuscarawas",
+ "Twimenhill", "Tyman", "Underwood", "Uneeda", "Union", "Unknown",
+ "Valley", "Vance", "Vaughn", "Venture", "Venus", "Vernon",
+ "Vetter", "Vicki", "Victory", "Villa", "Village", "Vine", "Vinsel",
+ "Virginia", "Vista", "Vroom", "Wabash", "Wacker", "Wakatomika",
+ "Waldolf", "Walker", "Wall", "Wallwork", "Walnut", "Walter",
+ "Waltham", "Ward", "Wargo", "Warner", "Warners", "Warren",
+ "Warwick", "Washington", "Water", "Waters", "Watkins", "Watson",
+ "Watts", "Wayne", "Weaver", "Webb", "Webster", "Wedgewood",
+ "Weedon", "Weller", "Wells", "Wentz", "Wessex", "West",
+ "Westbourne", "Western", "Westmoor", "Westmore", "Westwood",
+ "Wetsell", "Whaley", "Wheatland", "Wheelabout", "Wheeler",
+ "Wheeling", "Whipple", "Whites", "Whitman", "Wilhelm", "Wilkins",
+ "Williams", "Willis", "Willow", "Wilmer", "Wilmington", "Wilshire",
+ "Wilson", "Winding", "Windmill", "Windsong", "Winfield",
+ "Winlwood", "Winter", "Winton", "Wise", "Wisteria", "Wogan",
+ "Wolfe", "Wolford", "Woodberry", "Woodbrook", "Woodland",
+ "Woodlawn", "Woolper", "Workman", "Wortman", "Wrexham", "Yale",
+ "Yingling", "Yost", "Young", "Zane", "Zanesville", "Zella"
+
+ };
+ }
+ };
+
+ ValueProvider<String> ADDRESS_SUFFIXES = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Avenue", "Boulevard",
+ "Circle", "Crescent", "Court", "Drive", "Heights", "Lane", "Park",
+ "Path", "Parkway", "Place", "Road", "Ridge", "Run", "Square",
+ "Street", "Station", "Terrace", "Trail", "Way", "Rd", "Ln", "St",
+ "Blvd", "Ave", "Drv"};
+ }
+ };
+
+ ValueProvider<String> CITIES = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Abba", "Abbeville", "Acworth",
+ "Adairsville", "Adel", "Adrian", "Ailey", "Alamo", "Alapaha",
+ "Albany", "Allenhurst", "Alma", "Alma", "Alpharetta", "Alston",
+ "Amboy", "Ambrose", "Americus", "Appling", "Arlington", "Ashburn",
+ "Athens", "Atkinson", "Atlanta", "Attapulgus", "Auburn", "Augusta",
+ "Augusta-Richmond County", "Austell", "Avondale Estates", "Axson",
+ "Baconton", "Baden", "Bainbridge", "Bainbridge", "Baldwin",
+ "Bannockburn", "Barnesville", "Barney", "Barretts", "Barwick",
+ "Baxley", "Bemiss", "Berkeley Lake", "Berlin", "Blackshear",
+ "Blairsville", "Blakely", "Bloomingdale", "Blue Ridge", "Bogart",
+ "Boston", "Bowdon", "Bowens Mill", "Bowman", "Braselton", "Bremen",
+ "Brinson", "Bristol", "Bronwood", "Brookfield", "Brooklet",
+ "Brooks", "Broxton", "Brunswick", "Buchanan", "Buena Vista",
+ "Buford", "Bushnell", "Byromville", "Byron", "Cairo", "Camilla",
+ "Canton", "Carnesville", "Carrollton", "Cartersville",
+ "Cave Spring", "Cecil", "Cedartown", "Centerville", "Chamblee",
+ "Chatsworth", "Chauncey", "Chester", "Chickamauga", "Chula",
+ "Clarkston", "Claxton", "Clayton", "Cleveland", "Clyatteville",
+ "Clyo", "Cobbtown", "Cochran", "Cogdell", "Cohutta", "Colesburg",
+ "College Park", "Collins", "Colquitt", "Columbus", "Commerce",
+ "Conyers", "Coolidge", "Cordele", "Cornelia", "Council",
+ "Country Club Estate", "Coverdale", "Covington", "Cox",
+ "Crawfordville", "Crescent", "Culloden", "Cumming", "Cusseta",
+ "Cuthbert", "Dacula", "Dahlonega", "Daisy", "Dakota", "Dallas",
+ "Dalton", "Damascus", "Danielsville", "Darien", "Dasher", "Dawson",
+ "Dawsonville", "Decatur", "Denmark", "Dillard", "Dixie",
+ "Dock Junction", "Doerun", "Donalsonville", "Doraville", "Douglas",
+ "Douglasville", "Dover Bluff", "Dupont", "Dublin", "Dudley",
+ "Duluth", "Dunwoody", "East Dublin", "East Point", "Eastman",
+ "Eatonton", "Ebenezer", "Edison", "Edith", "Egypt", "Elberton",
+ "Eldorado", "Ellabelle", "Ellaville", "Ellenton", "Ellijay",
+ "Enigma", "Euharlee", "Eulonia", "Everitt", "Fairburn", "Fairmont",
+ "Fargo", "Fayetteville", "Fitzgerald", "Flemington",
+ "Flowery Branch", "Folkston", "Forest Park", "Forsyth",
+ "Fort Gaines", "Fort Oglethorpe", "Fort Stewart", "Fort Valley",
+ "Franklin", "Fruitland", "Funston", "Gainesville", "Garden City",
+ "Garfield", "Geneva", "Georgetown", "Gibson", "Glennville",
+ "Glenwood", "Glory", "Graham", "Gray", "Greensboro", "Greenville",
+ "Griffin", "Grooverville", "Groveland", "Grovetown", "Gumbranch",
+ "Guyton", "Hagan", "Hahira", "Hamilton", "Hampton", "Hapeville",
+ "Harding", "Harding", "Hardwicke", "Harrietts Bluff", "Hartwell",
+ "Hawkinsville", "Haylon", "Hazlehurst", "Helena", "Hepzibah",
+ "Hiawassee", "Hickox", "Higgston", "Hinesville", "Hiram",
+ "Hoboken", "Hogansville", "Holly Springs", "Holt", "Homeland",
+ "Homer", "Homerville", "Hopeulikit", "Hortense", "Howell", "Inaha",
+ "Iron City", "Irwinton", "Irwinville", "Isle Of Hope-Dutch Island",
+ "Jackson", "Janis", "Jasper", "Jefferson", "Jeffersonville",
+ "Jesup", "Johns Creek", "Jonesboro", "Keller", "Kennesaw",
+ "Kinderlou", "Kings Bay Base", "Kingsland", "Kirkland", "Kite",
+ "Lafayette", "Lagrange", "Lake City", "Lake Park", "Lakeland",
+ "Lanier", "Lawrenceville", "Lax", "Leary", "Leefield", "Leesburg",
+ "Lenox", "Lexington", "Lilburn", "Lincolnton", "Lithonia",
+ "Locust Grove", "Loganville", "Lookout Mountain", "Louisville",
+ "Lovejoy", "Ludowici", "Lulaton", "Lumber City", "Lumpkin",
+ "Lyons", "Macon", "Madison", "Manassas", "Manchester", "Marietta",
+ "Maxeys", "Mayday", "Mcdonough", "Mcintosh", "Mcintyre", "Mcrae",
+ "Meigs", "Meldrim", "Mershon", "Metter", "Midway", "Milan",
+ "Milledgeville", "Millen", "Milton", "Moniac", "Monroe",
+ "Montezuma", "Montgomery", "Monticello", "Montrose", "Mora",
+ "Morgan", "Morrow", "Morven", "Moultrie", "Mount Vernon",
+ "Mount Zion", "Mountain Park", "Mystic", "Nahunta", "Nankin",
+ "Nashville", "Needmore", "Nelson", "Nevils", "New Rock Hill",
+ "Newnan", "Newton", "Nicholls", "Norcross", "Norman Park",
+ "Oakwood", "Ochlocknee", "Ocilla", "Odum", "Offerman", "Offerman",
+ "Oglethorpe", "Omega", "Osterfield", "Ousley", "Oxford",
+ "Palmetto", "Parrott", "Patterson", "Peachtree City Website",
+ "Pearson", "Pelham", "Pembroke", "Perry", "Phillipsburg",
+ "Pine Lake", "Pineora", "Pineview", "Pooler", "Port Wentworth",
+ "Portal", "Potter", "Poulan", "Powder Springs", "Preston",
+ "Pridgen", "Pulaski", "Queensland", "Quitman", "Ray City",
+ "Rebecca", "Register", "Reidsville", "Remerton", "Rentz",
+ "Retreat", "Riceboro", "Richmond Hill", "Ridgeville", "Rincon",
+ "Ringgold", "Riverdale", "Riverside", "Rochelle", "Rockingham",
+ "Rockmart", "Rome", "Roswell", "Royston", "Rutledge",
+ "Saint George", "Sale City", "Sandersville", "Sandy Springs",
+ "Sasser", "Savannah", "Screven", "Senoia", "Sessoms", "Shawnee",
+ "Shellman Bluff", "Sirmans", "Skidaway Island", "Smithville",
+ "Smyrna", "Snellville", "Social Circle", "Soperton",
+ "South Newport", "Sparks", "Sparta", "Springfield", "Strongsville",
+ "St. Simons Island", "Statenville", "Statesboro", "Sterling",
+ "Stillmore", "Stillwell", "Stilson", "Stockbridge", "Stockton",
+ "Stone Mountain", "Sugar Hill", "Sumner", "Sunbury", "Sunsweet",
+ "Surrency", "Suwanee", "Swainsboro", "Sycamore", "Sylvania",
+ "Sylvester", "Talbotton", "Tallapoosa", "Tarboro", "Tarver",
+ "Temple", "Thalman", "Thelma", "Thomaston", "Thomasville",
+ "Thomson", "Thunderbolt", "Tifton", "Toccoa", "Toomsboro",
+ "Townsend", "Trenton", "Trudie", "Tucker", "Twin City",
+ "Twin Peaks", "Tybee Island", "Tyrone", "Unadilla", "Union City",
+ "Unionville", "Upton", "Uvalda", "Valdosta", "Valona",
+ "Vernonburg", "Vidalia", "Vienna", "Villa Rica", "Walthourville",
+ "Warrenton", "Warwick", "Washington", "Waterloo", "Watkinsville",
+ "Waverly", "Waycross", "Waynesboro", "Waynesville", "Weber",
+ "West Green", "West Point", "Westwood", "Whigham", "White Oak",
+ "Whitmarsh Island", "Willacoochee", "Wilmington Island", "Winder",
+ "Winokur", "Withers", "Woodbine", "Woodstock", "Worth", "Wray",
+ "Wrightsville"};
+ }
+ };
+
+ ValueProvider<String> WORDS = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"throw", "ball", "hat", "red", "worn",
+ "list", "words", "computer", "in", "out", "hot", "cold", "warp",
+ "speed", "captain", "assert", "hold", "room", "ship", "lost", "is",
+ "television", "show", "about", "plane", "crash", "island",
+ "monster", "trees", "banging", "smoke", "where", "are", "we",
+ "was", "asked", "no", "rescue", "came", "build", "fire", "waited",
+ "days", "moved", "to", "caves", "found", "with", "ghost", "dad",
+ "in", "white", "rabbit", "lock", "discovered", "hatch", "with",
+ "boon", "secretly", "hid", "it", "while", "trying", "to", "open",
+ "it", "until", "sidekick", "died", "as", "sacrifice", "island",
+ "demanded", "many", "had", "dreams", "or", "visions", "others",
+ "came", "took", "people", "who", "are", "they", "what", "do",
+ "they", "want", "light", "came", "on", "through", "window",
+ "leader", "is", "a", "good", "man", "numbers", "in", "room",
+ "enter", "keys", "computer", "end", "of", "world", "wicket",
+ "magnetic", "pull", "shepherd", "always", "wrong", "much",
+ "suspense", "what", "to", "do", "when", "it", "ends", "I", "will",
+ "have", "to", "find", "something", "else", "to", "pique", "my",
+ "interest", "or maybe", "write", "lots", "of", "code", "probably",
+ "should", "have", "generated", "this", "text", "automatically",
+ "so", "will", "from", "the", "web", "ending", "badly", "library",
+ "handled", "books", "constantly", "headphones", "of", "ill", "on",
+ "it's", "sill", "sits", "sofa"};
+ }
+ };
+
+ ValueProvider<String> EMAIL_HOSTS = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"hotmail", "gmail", "mail.yahoo", "mail", "mail2web", "webmail.aol", "mailinator",
+ "mail.lycos", "netaddress", "fastmail", "walla", "postmaster", "zzn",
+ "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk",
+ "pookmail", "doramail", "dodgeit", "thatweb", "xasamail", "myrealbox", "excite"
+ };
+ }
+ };
+
+ ValueProvider<String> TLDS = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"org", "net", "com", "biz", "us", "co.uk", "me", "info", "by", "ru", "fr", "uk", "fm"};
+ }
+ };
+
+ ValueProvider<String> suffixes = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"II", "III", "Phd", "Jr", "Sr"};
+ }
+ };
+
+ ValueProvider<String> prefixes = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Mr", "Mrs", "Ms"};
+ }
+ };
+
+ ValueProvider<String> FIRST_NAMES = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Aaron", "Abby", "Abigail", "Adam",
+ "Alan", "Albert", "Alex", "Alexandra", "Alexis", "Alice", "Alicia",
+ "Alisha", "Alissa", "Allen", "Allison", "Alyssa", "Amanda",
+ "Amber", "Amy", "Andrea", "Andrew", "Andy", "Angel", "Angela",
+ "Angie", "Anita", "Ann", "Anna", "Annette", "Anthony", "Antonio",
+ "April", "Arthur", "Ashley", "Audrey", "Austin", "Autumn", "Baby",
+ "Barb", "Barbara", "Becky", "Benjamin", "Beth", "Bethany", "Betty",
+ "Beverly", "Bill", "Billie", "Billy", "Blake", "Bob", "Bobbie",
+ "Bobby", "Bonnie", "Brad", "Bradley", "Brady", "Brandi", "Brandon",
+ "Brandy", "Breanna", "Brenda", "Brent", "Brett", "Brian",
+ "Brianna", "Brittany", "Brooke", "Brooklyn", "Bruce", "Bryan",
+ "Caleb", "Cameron", "Candy", "Carl", "Carla", "Carmen", "Carol",
+ "Carolyn", "Carrie", "Casey", "Cassandra", "Catherine", "Cathy",
+ "Chad", "Charlene", "Charles", "Charlie", "Charlotte", "Chase",
+ "Chasity", "Chastity", "Chelsea", "Cheryl", "Chester", "Cheyenne",
+ "Chris", "Christian", "Christina", "Christine", "Christoph",
+ "Christopher", "Christy", "Chuck", "Cindy", "Clara", "Clarence",
+ "Clayton", "Clifford", "Clint", "Cody", "Colton", "Connie",
+ "Corey", "Cory", "Courtney", "Craig", "Crystal", "Curtis",
+ "Cynthia", "Dakota", "Dale", "Dallas", "Dalton", "Dan", "Dana",
+ "Daniel", "Danielle", "Danny", "Darla", "Darlene", "Darrell",
+ "Darren", "Dave", "David", "Dawn", "Dean", "Deanna", "Debbie",
+ "Deborah", "Debra", "Denise", "Dennis", "Derek", "Derrick",
+ "Destiny", "Devin", "Diana", "Diane", "Dillon", "Dixie", "Dominic",
+ "Don", "Donald", "Donna", "Donnie", "Doris", "Dorothy", "Doug",
+ "Douglas", "Drew", "Duane", "Dustin", "Dusty", "Dylan", "Earl",
+ "Ed", "Eddie", "Edward", "Elaine", "Elizabeth", "Ellen", "Emily",
+ "Eric", "Erica", "Erika", "Erin", "Ernest", "Ethan", "Eugene",
+ "Eva", "Evelyn", "Everett", "Faith", "Father", "Felicia", "Floyd",
+ "Francis", "Frank", "Fred", "Gabriel", "Gage", "Gail", "Gary",
+ "Gene", "George", "Gerald", "Gina", "Ginger", "Glen", "Glenn",
+ "Gloria", "Grace", "Greg", "Gregory", "Haley", "Hannah", "Harley",
+ "Harold", "Harry", "Heath", "Heather", "Heidi", "Helen", "Herbert",
+ "Holly", "Hope", "Howard", "Hunter", "Ian", "Isaac", "Jack",
+ "Jackie", "Jacob", "Jade", "Jake", "James", "Jamie", "Jan", "Jane",
+ "Janet", "Janice", "Jared", "Jasmine", "Jason", "Jay", "Jean",
+ "Jeannie", "Jeff", "Jeffery", "Jeffrey", "Jenna", "Jennifer",
+ "Jenny", "Jeremiah", "Jeremy", "Jerry", "Jesse", "Jessica",
+ "Jessie", "Jill", "Jim", "Jimmy", "Joann", "Joanne", "Jodi",
+ "Jody", "Joe", "Joel", "Joey", "John", "Johnathan", "Johnny",
+ "Jon", "Jonathan", "Jonathon", "Jordan", "Joseph", "Josh",
+ "Joshua", "Joyce", "Juanita", "Judy", "Julia", "Julie", "Justin",
+ "Kaitlyn", "Karen", "Katelyn", "Katherine", "Kathleen", "Kathryn",
+ "Kathy", "Katie", "Katrina", "Kay", "Kayla", "Kaylee", "Keith",
+ "Kelly", "Kelsey", "Ken", "Kendra", "Kenneth", "Kenny", "Kevin",
+ "Kim", "Kimberly", "Kris", "Krista", "Kristen", "Kristin",
+ "Kristina", "Kristy", "Kyle", "Kylie", "Lacey", "Laken", "Lance",
+ "Larry", "Laura", "Lawrence", "Leah", "Lee", "Leonard", "Leroy",
+ "Leslie", "Levi", "Lewis", "Linda", "Lindsay", "Lindsey", "Lisa",
+ "Lloyd", "Logan", "Lois", "Loretta", "Lori", "Louis", "Lynn",
+ "Madison", "Mandy", "Marcus", "Margaret", "Maria", "Mariah",
+ "Marie", "Marilyn", "Marion", "Mark", "Marlene", "Marsha",
+ "Martha", "Martin", "Marty", "Marvin", "Mary", "Mary ann", "Mason",
+ "Matt", "Matthew", "Max", "Megan", "Melanie", "Melinda", "Melissa",
+ "Melody", "Michael", "Michelle", "Mickey", "Mike", "Mindy",
+ "Miranda", "Misty", "Mitchell", "Molly", "Monica", "Morgan",
+ "Mother", "Myron", "Nancy", "Natasha", "Nathan", "Nicholas",
+ "Nick", "Nicole", "Nina", "Noah", "Norma", "Norman", "Olivia",
+ "Paige", "Pam", "Pamela", "Pat", "Patricia", "Patrick", "Patty",
+ "Paul", "Paula", "Peggy", "Penny", "Pete", "Phillip", "Phyllis",
+ "Rachael", "Rachel", "Ralph", "Randall", "Randi", "Randy", "Ray",
+ "Raymond", "Rebecca", "Regina", "Renee", "Rex", "Rhonda",
+ "Richard", "Rick", "Ricky", "Rita", "Rob", "Robbie", "Robert",
+ "Roberta", "Robin", "Rochelle", "Rocky", "Rod", "Rodney", "Roger",
+ "Ron", "Ronald", "Ronda", "Ronnie", "Rose", "Roxanne", "Roy",
+ "Russ", "Russell", "Rusty", "Ruth", "Ryan", "Sabrina", "Sally",
+ "Sam", "Samantha", "Samuel", "Sandra", "Sandy", "Sara", "Sarah",
+ "Savannah", "Scott", "Sean", "Seth", "Shanda", "Shane", "Shanna",
+ "Shannon", "Sharon", "Shaun", "Shawn", "Shawna", "Sheila",
+ "Shelly", "Sher", "Sherri", "Sherry", "Shirley", "Sierra",
+ "Skyler", "Stacey", "Stacy", "Stanley", "Stephanie", "Stephen",
+ "Steve", "Steven", "Sue", "Summer", "Susan", "Sydney", "Tabatha",
+ "Tabitha", "Tamara", "Tammy", "Tara", "Tasha", "Tashia", "Taylor",
+ "Ted", "Teresa", "Terri", "Terry", "Tessa", "Thelma", "Theresa",
+ "Thomas", "Tia", "Tiffany", "Tim", "Timmy", "Timothy", "Tina",
+ "Todd", "Tom", "Tommy", "Toni", "Tony", "Tonya", "Tracey",
+ "Tracie", "Tracy", "Travis", "Trent", "Trevor", "Trey", "Trisha",
+ "Tristan", "Troy", "Tyler", "Tyrone", "Unborn", "Valerie",
+ "Vanessa", "Vernon", "Veronica", "Vicki", "Vickie", "Vicky",
+ "Victor", "Victoria", "Vincent", "Virginia", "Vivian", "Walter",
+ "Wanda", "Wayne", "Wendy", "Wesley", "Whitney", "William",
+ "Willie", "Wyatt", "Zachary"};
+ }
+ };
+
+ ValueProvider<String> LAST_NAMES = new DictionaryValueProvider<String>(RANDOM) {
+ @Override
+ public String[] values() {
+ return new String[]{"Abbott", "Acevedo", "Acosta",
+ "Adams", "Adkins", "Aguilar", "Aguirre", "Albert", "Alexander",
+ "Alford", "Allen", "Allison", "Alston", "Alvarado", "Alvarez",
+ "Anderson", "Andrews", "Anthony", "Armstrong", "Arnold", "Ashley",
+ "Atkins", "Atkinson", "Austin", "Avery", "Avila", "Ayala", "Ayers",
+ "Bailey", "Baird", "Baker", "Baldwin", "Ball", "Ballard", "Banks",
+ "Barber", "Smith", "Johnson", "Williams", "Jones", "Brown",
+ "Davis", "Miller", "Wilson", "Moore", "Taylor", "Thomas",
+ "Jackson", "Barker", "Barlow", "Barnes", "Barnett", "Barr",
+ "Barrera", "Barrett", "Barron", "Barry", "Bartlett", "Barton",
+ "Bass", "Bates", "Battle", "Bauer", "Baxter", "Beach", "Bean",
+ "Beard", "Beasley", "Beck", "Becker", "Bell", "Bender", "Benjamin",
+ "Bennett", "Benson", "Bentley", "Benton", "Berg", "Berger",
+ "Bernard", "Berry", "Best", "Bird", "Bishop", "Black", "Blackburn",
+ "Blackwell", "Blair", "Blake", "Blanchard", "Blankenship",
+ "Blevins", "Bolton", "Bond", "Bonner", "Booker", "Boone", "Booth",
+ "Bowen", "Bowers", "Bowman", "Boyd", "Boyer", "Boyle", "Bradford",
+ "Bradley", "Bradshaw", "Brady", "Branch", "Bray", "Brennan",
+ "Brewer", "Bridges", "Briggs", "Bright", "Britt", "Brock",
+ "Brooks", "Browning", "Bruce", "Bryan", "Bryant", "Buchanan",
+ "Buck", "Buckley", "Buckner", "Bullock", "Burch", "Burgess",
+ "Burke", "Burks", "Burnett", "Burns", "Burris", "Burt", "Burton",
+ "Bush", "Butler", "Byers", "Byrd", "Cabrera", "Cain", "Calderon",
+ "Caldwell", "Calhoun", "Callahan", "Camacho", "Cameron",
+ "Campbell", "Campos", "Cannon", "Cantrell", "Cantu", "Cardenas",
+ "Carey", "Carlson", "Carney", "Carpenter", "Carr", "Carrillo",
+ "Carroll", "Carson", "Carter", "Carver", "Case", "Casey", "Cash",
+ "Castaneda", "Castillo", "Castro", "Cervantes", "Chambers", "Chan",
+ "Chandler", "Chaney", "Chang", "Chapman", "Charles", "Chase",
+ "Chavez", "Chen", "Cherry", "Christensen", "Christian", "Church",
+ "Clark", "Clarke", "Clay", "Clayton", "Clements", "Clemons",
+ "Cleveland", "Cline", "Cobb", "Cochran", "Coffey", "Cohen", "Cole",
+ "Coleman", "Collier", "Collins", "Colon", "Combs", "Compton",
+ "Conley", "Conner", "Conrad", "Contreras", "Conway", "Cook",
+ "Cooke", "Cooley", "Cooper", "Copeland", "Cortez", "Cote",
+ "Cotton", "Cox", "Craft", "Craig", "Crane", "Crawford", "Crosby",
+ "Cross", "Cruz", "Cummings", "Cunningham", "Curry", "Curtis",
+ "Dale", "Dalton", "Daniel", "Daniels", "Daugherty", "Davenport",
+ "David", "Davidson", "Dawson", "Day", "Dean", "Decker", "Dejesus",
+ "Delacruz", "Delaney", "Deleon", "Delgado", "Dennis", "Diaz",
+ "Dickerson", "Dickinson", "Dillard", "Dillon", "Dixon", "Dodson",
+ "Dominguez", "Donaldson", "Donovan", "Dorsey", "Dotson", "Douglas",
+ "Downs", "Doyle", "Drake", "Dudley", "Duffy", "Duke", "Duncan",
+ "Dunlap", "Dunn", "Duran", "Durham", "Dyer", "Eaton", "Edwards",
+ "Elliott", "Ellis", "Ellison", "Emerson", "England", "English",
+ "Erickson", "Espinoza", "Estes", "Estrada", "Evans", "Everett",
+ "Ewing", "Farley", "Farmer", "Farrell", "Faulkner", "Ferguson",
+ "Fernandez", "Ferrell", "Fields", "Figueroa", "Finch", "Finley",
+ "Fischer", "Fisher", "Fitzgerald", "Fitzpatrick", "Fleming",
+ "Fletcher", "Flores", "Flowers", "Floyd", "Flynn", "Foley",
+ "Forbes", "Ford", "Foreman", "Foster", "Fowler", "Fox", "Francis",
+ "Franco", "Frank", "Franklin", "Franks", "Frazier", "Frederick",
+ "Freeman", "French", "Frost", "Fry", "Frye", "Fuentes", "Fuller",
+ "Fulton", "Gaines", "Gallagher", "Gallegos", "Galloway", "Gamble",
+ "Garcia", "Gardner", "Garner", "Garrett", "Garrison", "Garza",
+ "Gates", "Gay", "Gentry", "George", "Gibbs", "Gibson", "Gilbert",
+ "Giles", "Gill", "Gillespie", "Gilliam", "Gilmore", "Glass",
+ "Glenn", "Glover", "Goff", "Golden", "Gomez", "Gonzales",
+ "Gonzalez", "Good", "Goodman", "Goodwin", "Gordon", "Gould",
+ "Graham", "Grant", "Graves", "Gray", "Green", "Greene", "Greer",
+ "Gregory", "Griffin", "Griffith", "Grimes", "Gross", "Guerra",
+ "Guerrero", "Guthrie", "Gutierrez", "Guy", "Guzman", "Hahn",
+ "Hale", "Haley", "Hall", "Hamilton", "Hammond", "Hampton",
+ "Hancock", "Haney", "Hansen", "Hanson", "Hardin", "Harding",
+ "Hardy", "Harmon", "Harper", "Harris", "Harrington", "Harrison",
+ "Hart", "Hartman", "Harvey", "Hatfield", "Hawkins", "Hayden",
+ "Hayes", "Haynes", "Hays", "Head", "Heath", "Hebert", "Henderson",
+ "Hendricks", "Hendrix", "Henry", "Hensley", "Henson", "Herman",
+ "Hernandez", "Herrera", "Herring", "Hess", "Hester", "Hewitt",
+ "Hickman", "Hicks", "Higgins", "Hill", "Hines", "Hinton", "Hobbs",
+ "Hodge", "Hodges", "Hoffman", "Hogan", "Holcomb", "Holden",
+ "Holder", "Holland", "Holloway", "Holman", "Holmes", "Holt",
+ "Hood", "Hooper", "Hoover", "Hopkins", "Hopper", "Horn", "Horne",
+ "Horton", "House", "Houston", "Howard", "Howe", "Howell",
+ "Hubbard", "Huber", "Hudson", "Huff", "Huffman", "Hughes", "Hull",
+ "Humphrey", "Hunt", "Hunter", "Hurley", "Hurst", "Hutchinson",
+ "Hyde", "Ingram", "Irwin", "Jacobs", "Jacobson", "James", "Jarvis",
+ "Jefferson", "Jenkins", "Jennings", "Jensen", "Jimenez", "Johns",
+ "Johnston", "Jordan", "Joseph", "Joyce", "Joyner", "Juarez",
+ "Justice", "Kane", "Kaufman", "Keith", "Keller", "Kelley", "Kelly",
+ "Kemp", "Kennedy", "Kent", "Kerr", "Key", "Kidd", "Kim", "King",
+ "Kinney", "Kirby", "Kirk", "Kirkland", "Klein", "Kline", "Knapp",
+ "Knight", "Knowles", "Knox", "Koch", "Kramer", "Lamb", "Lambert",
+ "Lancaster", "Landry", "Lane", "Lang", "Langley", "Lara", "Larsen",
+ "Larson", "Lawrence", "Lawson", "Le", "Leach", "Leblanc", "Lee",
+ "Leon", "Leonard", "Lester", "Levine", "Levy", "Lewis", "Lindsay",
+ "Lindsey", "Little", "Livingston", "Lloyd", "Logan", "Long",
+ "Lopez", "Lott", "Love", "Lowe", "Lowery", "Lucas", "Luna",
+ "Lynch", "Lynn", "Lyons", "Macdonald", "Macias", "Mack", "Madden",
+ "Maddox", "Maldonado", "Malone", "Mann", "Manning", "Marks",
+ "Marquez", "Marsh", "Marshall", "Martin", "Martinez", "Mason",
+ "Massey", "Mathews", "Mathis", "Matthews", "Maxwell", "May",
+ "Mayer", "Maynard", "Mayo", "Mays", "McBride", "McCall",
+ "McCarthy", "McCarty", "McClain", "McClure", "McConnell",
+ "McCormick", "McCoy", "McCray", "McCullough", "McDaniel",
+ "McDonald", "McDowell", "McFadden", "McFarland", "McGee",
+ "McGowan", "McGuire", "McIntosh", "McIntyre", "McKay", "McKee",
+ "McKenzie", "McKinney", "McKnight", "McLaughlin", "McLean",
+ "McLeod", "McMahon", "McMillan", "McNeil", "McPherson", "Meadows",
+ "Medina", "Mejia", "Melendez", "Melton", "Mendez", "Mendoza",
+ "Mercado", "Mercer", "Merrill", "Merritt", "Meyer", "Meyers",
+ "Michael", "Middleton", "Miles", "Mills", "Miranda", "Mitchell",
+ "Molina", "Monroe", "Montgomery", "Montoya", "Moody", "Moon",
+ "Mooney", "Morales", "Moran", "Moreno", "Morgan", "Morin",
+ "Morris", "Morrison", "Morrow", "Morse", "Morton", "Moses",
+ "Mosley", "Moss", "Mueller", "Mullen", "Mullins", "Munoz",
+ "Murphy", "Murray", "Myers", "Nash", "Navarro", "Neal", "Nelson",
+ "Newman", "Newton", "Nguyen", "Nichols", "Nicholson", "Nielsen",
+ "Nieves", "Nixon", "Noble", "Noel", "Nolan", "Norman", "Norris",
+ "Norton", "Nunez", "Obrien", "Ochoa", "Oconnor", "Odom",
+ "Odonnell", "Oliver", "Olsen", "Olson", "O'neal", "O'neil",
+ "O'neill", "Orr", "Ortega", "Ortiz", "Osborn", "Osborne", "Owen",
+ "Owens", "Pace", "Pacheco", "Padilla", "Page", "Palmer", "Park",
+ "Parker", "Parks", "Parrish", "Parsons", "Pate", "Patel",
+ "Patrick", "Patterson", "Patton", "Paul", "Payne", "Pearson",
+ "Peck", "Pena", "Pennington", "Perez", "Perkins", "Perry",
+ "Peters", "Petersen", "Peterson", "Petty", "Phelps", "Phillips",
+ "Pickett", "Pierce", "Pittman", "Pitts", "Pollard", "Poole",
+ "Pope", "Porter", "Potter", "Potts", "Powell", "Powers", "Pratt",
+ "Preston", "Price", "Prince", "Pruitt", "Puckett", "Pugh", "Quinn",
+ "Ramirez", "Ramos", "Ramsey", "Randall", "Randolph", "Rasmussen",
+ "Ratliff", "Ray", "Raymond", "Reed", "Reese", "Reeves", "Reid",
+ "Reilly", "Reyes", "Reynolds", "Rhodes", "Rice", "Rich", "Richard",
+ "Richards", "Richardson", "Richmond", "Riddle", "Riggs", "Riley",
+ "Rios", "Rivas", "Rivera", "Rivers", "Roach", "Robbins",
+ "Roberson", "Roberts", "Robertson", "Robinson", "Robles", "Rocha",
+ "Rodgers", "Rodriguez", "Rodriquez", "Rogers", "Rojas", "Rollins",
+ "Roman", "Romero", "Rosa", "Rosales", "Rosario", "Rose", "Ross",
+ "Roth", "Rowe", "Rowland", "Roy", "Ruiz", "Rush", "Russell",
+ "Russo", "Rutledge", "Ryan", "Salas", "Salazar", "Salinas",
+ "Sampson", "Sanchez", "Sanders", "Sandoval", "Sanford", "Santana",
+ "Santiago", "Santos", "Sargent", "Saunders", "Savage", "Sawyer",
+ "Schmidt", "Schneider", "Schroeder", "Schultz", "Schwartz",
+ "Scott", "Sears", "Sellers", "Serrano", "Sexton", "Shaffer",
+ "Shannon", "Sharp", "Sharpe", "Shaw", "Shelton", "Shepard",
+ "Shepherd", "Sheppard", "Sherman", "Shields", "Short", "Silva",
+ "Simmons", "Simon", "Simpson", "Sims", "Singleton", "Skinner",
+ "Slater", "Sloan", "Small", "Snider", "Snow", "Snyder", "Solis",
+ "Solomon", "Sosa", "Soto", "Sparks", "Spears", "Spence", "Spencer",
+ "Stafford", "Stanley", "Stanton", "Stark", "Steele", "Stein",
+ "Stephens", "Stephenson", "Stevens", "Stevenson", "Stewart",
+ "Stokes", "Stone", "Stout", "Strickland", "Strong", "Stuart",
+ "Suarez", "Sullivan", "Summers", "Sutton", "Swanson", "Sweeney",
+ "Sweet", "Sykes", "Talley", "Tanner", "Tate", "Terrell", "Terry",
+ "Thompson", "Thornton", "Tillman", "Todd", "Torres", "Townsend",
+ "Tran", "Travis", "Trevino", "Trujillo", "Tucker", "Turner",
+ "Tyler", "Tyson", "Underwood", "Valdez", "Valencia", "Valentine",
+ "Valenzuela", "Vance", "Vang", "Vargas", "Vasquez", "Vaughan",
+ "Vaughn", "Vazquez", "Vega", "Velasquez", "Velazquez", "Velez",
+ "Van halen", "Vincent", "Vinson", "Wade", "Wagner", "Walker",
+ "Wall", "Wallace", "Waller", "Walls", "Walsh", "Walter", "Walters",
+ "Walton", "Ward", "Ware", "Warner", "Warren", "Washington",
+ "Waters", "Watkins", "Watson", "Watts", "Weaver", "Webb", "Weber",
+ "Webster", "Weeks", "Weiss", "Welch", "Wells", "West", "Wheeler",
+ "Whitaker", "White", "Whitehead", "Whitfield", "Whitley",
+ "Whitney", "Wiggins", "Wilcox", "Wilder", "Wiley", "Wilkerson",
+ "Wilkins", "Wilkinson", "William", "Williamson", "Willis",
+ "Winters", "Wise", "Witt", "Wolf", "Wolfe", "Wong", "Wood",
+ "Woodard", "Woods", "Woodward", "Wooten", "Workman", "Wright",
+ "Wyatt", "Wynn", "Yang", "Yates", "York", "Young", "Zamora",
+ "Zimmerman"};
+ }
+ };
+
+
+ T randomValue();
+
+ T randomValue(int chance);
+
+ T randomValue(int chance, T defaultValue);
+
+ void setRandom(Random random);
+
+}
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DbAttributeBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DbAttributeBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DbAttributeBuilder.java
index 38f2b9b..1682b50 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DbAttributeBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DbAttributeBuilder.java
@@ -18,6 +18,8 @@
****************************************************************/
package org.apache.cayenne.merge.builders;
+import org.apache.cayenne.datafactory.DictionaryValueProvider;
+import org.apache.cayenne.datafactory.ValueProvider;
import org.apache.cayenne.dba.TypesMapping;
import org.apache.cayenne.map.DbAttribute;
@@ -28,6 +30,13 @@ import static org.apache.commons.lang.StringUtils.isEmpty;
*/
public class DbAttributeBuilder extends DefaultBuilder<DbAttribute> {
+ private static final ValueProvider<String> TYPES_RANDOM = new DictionaryValueProvider<String>(ValueProvider.RANDOM) {
+ @Override
+ protected String[] values() {
+ return TypesMapping.getDatabaseTypes();
+ }
+ };
+
public DbAttributeBuilder() {
super(new DbAttribute());
}
@@ -43,7 +52,7 @@ public class DbAttributeBuilder extends DefaultBuilder<DbAttribute> {
}
public DbAttributeBuilder type() {
- return type(dataFactory.getItem(TypesMapping.getDatabaseTypes()));
+ return type(TYPES_RANDOM.randomValue());
}
public DbAttributeBuilder type(String item) {
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DefaultBuilder.java
----------------------------------------------------------------------
diff --git a/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DefaultBuilder.java b/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DefaultBuilder.java
index 6c37178..5e9cea2 100644
--- a/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DefaultBuilder.java
+++ b/cayenne-server/src/test/java/org/apache/cayenne/merge/builders/DefaultBuilder.java
@@ -18,8 +18,8 @@
****************************************************************/
package org.apache.cayenne.merge.builders;
+import org.apache.cayenne.datafactory.DataFactory;
import org.apache.commons.lang.StringUtils;
-import org.fluttercode.datafactory.impl.DataFactory;
/**
* @since 4.0.
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/cayenne-tools/pom.xml
----------------------------------------------------------------------
diff --git a/cayenne-tools/pom.xml b/cayenne-tools/pom.xml
index f05b878..dc133a8 100644
--- a/cayenne-tools/pom.xml
+++ b/cayenne-tools/pom.xml
@@ -42,11 +42,6 @@
<scope>test</scope>
<type>test-jar</type>
</dependency>
- <dependency>
- <groupId>org.fluttercode.datafactory</groupId>
- <artifactId>datafactory</artifactId>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.apache.cayenne.build-tools</groupId>
http://git-wip-us.apache.org/repos/asf/cayenne/blob/161b1469/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index c3fb481..0b158b8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -438,13 +438,6 @@
</exclusion>
</exclusions>
</dependency>
- <dependency>
- <groupId>org.fluttercode.datafactory</groupId>
- <artifactId>datafactory</artifactId>
- <version>0.8</version>
- <type>jar</type>
- <scope>test</scope>
- </dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-mock</artifactId>
|