Skip to content

Commit f3ea903

Browse files
committed
chore:changed implementation to include hasmap and update logic of creating json file
1 parent 8b6b0aa commit f3ea903

File tree

3 files changed

+145
-160
lines changed

3 files changed

+145
-160
lines changed

lesson_09/types/types_app/src/main/java/com/codedifferently/lesson9/generator/JsonFileGenerator.java

Lines changed: 19 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,16 @@
3030
@Service
3131
public class JsonFileGenerator {
3232

33+
Map<Class<?>, ValueGenerator> TYPE_TO_GENERATOR =
34+
Map.of(
35+
Integer.class, new IntValueGenerator(),
36+
String.class, new StringValueGenerator(),
37+
Double.class, new DoubleValueGenerator(),
38+
Short.class, new ShortValueGenerator(),
39+
Long.class, new LongValueGenerator(),
40+
Float.class, new FloatValueGenerator(),
41+
Boolean.class, new BooleanValueGenerator());
42+
3343
// Refrences to all DataProvider beans
3444
@Autowired private List<DataProvider> dataProviders;
3545

@@ -50,43 +60,18 @@ public void createTestFile(String path) {
5060

5161
public List<ValueGenerator> mapColumnTypeToGenerator(Map<String, Class> providerFileData) {
5262

53-
List<ValueGenerator> generators = new ArrayList<>();
54-
// Initialize the list with null values to ensure it has 7 elements
55-
for (int i = 0; i < 7; i++) {
56-
generators.add(new IntValueGenerator());
57-
}
58-
// Map each column type to a corresponding ValueGenerator
59-
for (Map.Entry<String, Class> entry : providerFileData.entrySet()) {
60-
61-
Class columnType = entry.getValue();
62-
String columnName = entry.getKey();
63-
// Extracts the index from the column name (e.g., "column1" -> 0) to place the generator in
64-
// the correct position
65-
Integer columnIndex = columnName.charAt(columnName.length() - 1) - '1';
66-
System.out.println(columnIndex);
67-
// Gets the entry value amd checks its type to add the corresponding generator and set the
68-
// values to its index so the list can be in the correct order
69-
if (columnType == Integer.class) {
70-
generators.set(columnIndex, new IntValueGenerator());
71-
72-
} else if (columnType == String.class) {
73-
generators.set(columnIndex, new StringValueGenerator());
74-
75-
} else if (columnType == Double.class) {
76-
generators.set(columnIndex, new DoubleValueGenerator());
77-
78-
} else if (columnType == Short.class) {
79-
generators.set(columnIndex, new ShortValueGenerator());
80-
81-
} else if (columnType == Long.class) {
82-
generators.set(columnIndex, new LongValueGenerator());
63+
ArrayList<ValueGenerator> generators = new ArrayList<>();
8364

84-
} else if (columnType == Float.class) {
85-
generators.set(columnIndex, new FloatValueGenerator());
65+
for (int i = 1; i <= providerFileData.size(); i++) {
66+
String column = "column" + i;
67+
Class<?> type = providerFileData.get(column);
8668

87-
} else if (columnType == Boolean.class) {
88-
generators.set(columnIndex, new BooleanValueGenerator());
69+
// Look up the appropriate generator for this column type.
70+
ValueGenerator generator = TYPE_TO_GENERATOR.get(type);
71+
if (generator == null) {
72+
throw new IllegalArgumentException("No generator found for type: " + type);
8973
}
74+
generators.add(generator);
9075
}
9176

9277
return generators;
Lines changed: 62 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,92 @@
11
[
22
{
3-
"column1": "1871125464",
4-
"column2": "lhyfkqpt6vx",
3+
"column1": "944929594",
4+
"column2": "06fi1hxtqb9j",
55
"column3": "true",
6-
"column4": "4.4057983E37",
7-
"column5": "1.455658707933119E308",
8-
"column6": "2038432641739082752",
9-
"column7": "24633"
6+
"column4": "2.59635E38",
7+
"column5": "2.430443684090799E307",
8+
"column6": "7827046642901978112",
9+
"column7": "1566"
1010
},
1111
{
12-
"column1": "266549525",
13-
"column2": "l6fbd",
12+
"column1": "1666926343",
13+
"column2": "862nzp7",
1414
"column3": "false",
15-
"column4": "1.6990517E38",
16-
"column5": "6.036785578511839E307",
17-
"column6": "6064685163749244928",
18-
"column7": "11946"
15+
"column4": "4.0773533E37",
16+
"column5": "1.1225957758779746E308",
17+
"column6": "3426186017449870848",
18+
"column7": "16666"
1919
},
2020
{
21-
"column1": "1751241053",
22-
"column2": "m106f",
21+
"column1": "1200838159",
22+
"column2": "yzjxal3d7b",
2323
"column3": "true",
24-
"column4": "2.3372522E38",
25-
"column5": "1.8526693015700257E307",
26-
"column6": "1938747109199360000",
27-
"column7": "29035"
24+
"column4": "2.5877623E38",
25+
"column5": "1.5986778088939934E308",
26+
"column6": "912087237327064448",
27+
"column7": "13968"
2828
},
2929
{
30-
"column1": "742213225",
31-
"column2": "udxnw74qe",
30+
"column1": "1164287839",
31+
"column2": "3i0rj",
3232
"column3": "true",
33-
"column4": "9.11325E36",
34-
"column5": "5.071260626528659E307",
35-
"column6": "6544678102738511872",
36-
"column7": "8636"
33+
"column4": "2.3256008E38",
34+
"column5": "1.7211118267615541E308",
35+
"column6": "7185992078933212160",
36+
"column7": "15923"
3737
},
3838
{
39-
"column1": "92424510",
40-
"column2": "jw18fdbre",
41-
"column3": "true",
42-
"column4": "2.191536E38",
43-
"column5": "1.3679279799259323E308",
44-
"column6": "2021310986582706176",
45-
"column7": "6118"
39+
"column1": "1326578360",
40+
"column2": "d8vshra",
41+
"column3": "false",
42+
"column4": "3.0484239E38",
43+
"column5": "5.493813143168604E307",
44+
"column6": "321112649759466944",
45+
"column7": "13004"
4646
},
4747
{
48-
"column1": "1161822656",
49-
"column2": "tkhp4y",
48+
"column1": "2113698196",
49+
"column2": "a68p1",
5050
"column3": "true",
51-
"column4": "2.8465628E38",
52-
"column5": "1.239961747032759E308",
53-
"column6": "7553861566549153792",
54-
"column7": "27203"
51+
"column4": "1.5954705E37",
52+
"column5": "1.4009784377100713E308",
53+
"column6": "2886089286422708736",
54+
"column7": "15996"
5555
},
5656
{
57-
"column1": "2125294866",
58-
"column2": "xp8oai",
57+
"column1": "888325069",
58+
"column2": "p3z7kig",
5959
"column3": "true",
60-
"column4": "1.6000869E38",
61-
"column5": "6.288394937935313E307",
62-
"column6": "1328041671952577792",
63-
"column7": "9394"
60+
"column4": "9.791017E37",
61+
"column5": "1.0123953630380612E307",
62+
"column6": "3619545530149613056",
63+
"column7": "24050"
6464
},
6565
{
66-
"column1": "1046915339",
67-
"column2": "09gt4shvu",
66+
"column1": "225052658",
67+
"column2": "hvu2c31lqxo",
6868
"column3": "false",
69-
"column4": "1.2361329E38",
70-
"column5": "1.0893707558616224E308",
71-
"column6": "7878410343699295232",
72-
"column7": "6846"
69+
"column4": "1.2992741E38",
70+
"column5": "1.160460074912656E308",
71+
"column6": "4006104553686780416",
72+
"column7": "4412"
7373
},
7474
{
75-
"column1": "695035396",
76-
"column2": "n9fkbs",
75+
"column1": "1688245742",
76+
"column2": "n9ux8170fam2",
7777
"column3": "true",
78-
"column4": "2.5695442E38",
79-
"column5": "1.2884156967277734E306",
80-
"column6": "3987842068821487104",
81-
"column7": "11582"
78+
"column4": "2.1340377E38",
79+
"column5": "8.596797742783672E307",
80+
"column6": "6477446700913715200",
81+
"column7": "2889"
8282
},
8383
{
84-
"column1": "1017703874",
85-
"column2": "kr294pc6x",
86-
"column3": "true",
87-
"column4": "1.4897007E38",
88-
"column5": "2.368851502302493E307",
89-
"column6": "8337635199933204480",
90-
"column7": "7547"
84+
"column1": "1632656838",
85+
"column2": "37ofmtxwj0l",
86+
"column3": "false",
87+
"column4": "3.706935E37",
88+
"column5": "1.6884868342797845E308",
89+
"column6": "7830500662287931392",
90+
"column7": "17819"
9191
}
9292
]
Lines changed: 64 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,92 @@
11
[
22
{
33
"column1": "false",
4-
"column2": "707884121",
5-
"column3": "1.1096871103226732E308",
6-
"column4": "5561",
7-
"column5": "5150281470108903424",
8-
"column6": "vp4yx8or",
9-
"column7": "1.7638916E38"
4+
"column2": "813074658",
5+
"column3": "1.4635333086293323E308",
6+
"column4": "409",
7+
"column5": "709734180196066432",
8+
"column6": "wqa5t",
9+
"column7": "1.6203352E38"
1010
},
1111
{
1212
"column1": "false",
13-
"column2": "282166158",
14-
"column3": "5.161085889995304E307",
15-
"column4": "23617",
16-
"column5": "1757409789740652800",
17-
"column6": "6c9k83r0fm1",
18-
"column7": "1.5138125E38"
13+
"column2": "1309515888",
14+
"column3": "1.1484235740244638E308",
15+
"column4": "8602",
16+
"column5": "6508722863833659392",
17+
"column6": "sckn2powf6hd",
18+
"column7": "2.0169527E37"
1919
},
2020
{
2121
"column1": "false",
22-
"column2": "69151367",
23-
"column3": "8.836725603898435E307",
24-
"column4": "19740",
25-
"column5": "8709751352895659008",
26-
"column6": "dgmo6fhaksj",
27-
"column7": "3.0388952E38"
28-
},
29-
{
30-
"column1": "true",
31-
"column2": "285655492",
32-
"column3": "8.712750773923544E307",
33-
"column4": "30711",
34-
"column5": "6271187777944863744",
35-
"column6": "z0ugdy61a4mr",
36-
"column7": "1.9929802E38"
22+
"column2": "1130946",
23+
"column3": "9.254890025244688E307",
24+
"column4": "5762",
25+
"column5": "200610465769865696",
26+
"column6": "zer5n",
27+
"column7": "3.2795338E38"
3728
},
3829
{
3930
"column1": "false",
40-
"column2": "1455045059",
41-
"column3": "1.5161386287297279E308",
42-
"column4": "13236",
43-
"column5": "8574579482414312448",
44-
"column6": "y3ht9z",
45-
"column7": "1.9678726E38"
31+
"column2": "697305244",
32+
"column3": "1.352237106020667E308",
33+
"column4": "13210",
34+
"column5": "1320996261714453760",
35+
"column6": "3r2f6q",
36+
"column7": "1.4079741E38"
4637
},
4738
{
4839
"column1": "true",
49-
"column2": "269990844",
50-
"column3": "9.47290875991956E307",
51-
"column4": "2159",
52-
"column5": "4167433949411338240",
53-
"column6": "4r3u09ns7l",
54-
"column7": "1.081059E38"
40+
"column2": "996761114",
41+
"column3": "1.220882408728347E308",
42+
"column4": "15566",
43+
"column5": "8967557375811629056",
44+
"column6": "mq9wl1oxtpr",
45+
"column7": "3.6686612E37"
5546
},
5647
{
57-
"column1": "true",
58-
"column2": "874947323",
59-
"column3": "1.1351352419985975E308",
60-
"column4": "20944",
61-
"column5": "8979653763601789952",
62-
"column6": "3i6nwt",
63-
"column7": "1.0518829E38"
48+
"column1": "false",
49+
"column2": "764541673",
50+
"column3": "1.4057908466183021E308",
51+
"column4": "8447",
52+
"column5": "8183996073355248640",
53+
"column6": "uetvy0j3",
54+
"column7": "8.994988E37"
6455
},
6556
{
6657
"column1": "false",
67-
"column2": "683010388",
68-
"column3": "6.598564185097325E307",
69-
"column4": "9009",
70-
"column5": "220709663667776960",
71-
"column6": "i2z74ejdahlv",
72-
"column7": "2.2669582E38"
58+
"column2": "520137409",
59+
"column3": "6.375364106914771E307",
60+
"column4": "18525",
61+
"column5": "7226189344581148672",
62+
"column6": "sd2izrgp",
63+
"column7": "3.2198009E38"
7364
},
7465
{
7566
"column1": "true",
76-
"column2": "1259829414",
77-
"column3": "2.262435114674627E307",
78-
"column4": "26413",
79-
"column5": "3673321191386016256",
80-
"column6": "6zpdh2j4vga",
81-
"column7": "1.5780971E38"
67+
"column2": "611092736",
68+
"column3": "4.974208169413678E307",
69+
"column4": "25922",
70+
"column5": "7243221613706509312",
71+
"column6": "qv65pjxc9no",
72+
"column7": "1.2186685E38"
73+
},
74+
{
75+
"column1": "false",
76+
"column2": "925868218",
77+
"column3": "1.5383988239543959E308",
78+
"column4": "13901",
79+
"column5": "7446039782899786752",
80+
"column6": "fh9ui60",
81+
"column7": "3.8429234E36"
8282
},
8383
{
8484
"column1": "true",
85-
"column2": "1262828853",
86-
"column3": "5.291539197322382E307",
87-
"column4": "4243",
88-
"column5": "2097972881012346112",
89-
"column6": "hcq6a0ne1u",
90-
"column7": "1.3523268E38"
85+
"column2": "967179440",
86+
"column3": "6.586516932594213E307",
87+
"column4": "21484",
88+
"column5": "8242003774446846976",
89+
"column6": "2065m4g",
90+
"column7": "3.0216805E38"
9191
}
9292
]

0 commit comments

Comments
 (0)