private ArrayList generateOneRecord()

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;
    }