in gremlin/neptune-social-media-utils/src/main/java/com/aws/neptune/utils/generator/CSVGenerator.java [77:140]
private ArrayList<Object> generateOneRecord(Map<String,ColumnBean> columns){
ArrayList<Object> rec = new ArrayList<Object>();
columns.forEach( (name, value) -> {
if (value.dataType.toLowerCase().equals("integer")
|| value.dataType.toLowerCase().equals("long")){
int fromInt, toInt;
if (value.intRange != null) {
fromInt = value.intRange.get("from");
toInt = value.intRange.get("to");
} else {
fromInt = this.RANDOM_INT_RANGE[0];
toInt = this.RANDOM_INT_RANGE[1];
}
rec.add(RandomUtils.nextInt(fromInt, toInt));
}else if (value.dataType.toLowerCase().equals("date")){
if (value.dateFormat != null) {
this.TIME_FORMAT.applyPattern(value.dateFormat);
}
if (value.dateRange != null) {
try {
this.RANDOM_TIME_RANGE[0] =
TIME_FORMAT.parse(value.dateRange.get("from")
).getTime();
this.RANDOM_TIME_RANGE[1] =
TIME_FORMAT.parse(value.dateRange.get("to")
).getTime();
} catch (ParseException e) {
throw new RuntimeException(e.getMessage() +
". the date cannot be parse using " +
TIME_FORMAT.toPattern());
}
}
cal.setTimeInMillis(
RandomUtils.nextLong(this.RANDOM_TIME_RANGE[0],
this.RANDOM_TIME_RANGE[1]));
rec.add(TIME_FORMAT.format(cal.getTime()).toString());
}
else{
if ( value.dataSubType != null && value.dataSubType.toLowerCase().equals("name")) {
Faker faker = new Faker();
rec.add(faker.name().fullName());
}else if (value.dataSubType != null && value.dataSubType.toLowerCase().equals("shakespeare")) {
Faker faker = new Faker();
Map<Integer, Runnable> roles = new HashMap<>();
// Populate commands map
roles.put(1, () -> rec.add(faker.shakespeare().asYouLikeItQuote()));
roles.put(2, () -> rec.add(faker.shakespeare().hamletQuote()));
roles.put(3, () -> rec.add(faker.shakespeare().kingRichardIIIQuote()));
roles.put(4, () -> rec.add(faker.shakespeare().romeoAndJulietQuote()));
roles.get(RandomUtils.nextInt(1,5)).run();
}else if (value.dataSubType != null && value.dataSubType.toLowerCase().equals("custom") && value.options != null) {
Faker faker = new Faker();
rec.add(faker.options().option(value.options));
}else if (value.dataSubType != null && value.dataSubType.toLowerCase().equals("company")) {
Faker faker = new Faker();
rec.add(faker.company().name());
}else {
rec.add(RandomStringUtils.randomAlphabetic(10));
}
}
});
return rec;
}