Skip to content

Commit 0cf524a

Browse files
committed
changes jsonfile generator to be its own class instead of subclass of sample file generator
1 parent bce4cbe commit 0cf524a

File tree

3 files changed

+169
-134
lines changed

3 files changed

+169
-134
lines changed

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

Lines changed: 38 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@
1313
import com.codedifferently.lesson9.generator.Generators.LongValueGenerator;
1414
import com.codedifferently.lesson9.generator.Generators.ShortValueGenerator;
1515
import com.codedifferently.lesson9.generator.Generators.StringValueGenerator;
16+
import com.google.gson.GsonBuilder;
17+
18+
import java.io.File;
19+
import java.io.FileWriter;
20+
import java.io.IOException;
1621
import java.util.ArrayList;
22+
import java.util.LinkedHashMap;
1723
import java.util.List;
1824
import java.util.Map;
1925
import org.springframework.beans.factory.annotation.Autowired;
@@ -23,14 +29,13 @@
2329
* @author vscode
2430
*/
2531
@Service
26-
public class JsonFileGenerator extends SampleFileGenerator {
32+
public class JsonFileGenerator {
2733

2834
// Refrences to all DataProvider beans
2935
@Autowired private List<DataProvider> dataProviders;
3036

3137
// overriding the createTestFile method to generate files for each DataProvider
32-
@Override
33-
public void createTestFile(String path, String providerName) {
38+
public void createTestFile(String path) {
3439

3540
for (DataProvider provider : dataProviders) {
3641

@@ -88,4 +93,34 @@ public List<ValueGenerator> mapColumnTypeToGenerator(Map<String, Class> provider
8893

8994
return generators;
9095
}
96+
97+
protected ArrayList<Map<String, String>> createSampleData(List<ValueGenerator> generators) {
98+
var rows = new ArrayList<Map<String, String>>();
99+
for (var i = 0; i < 10; ++i) {
100+
Map<String, String> row = createRow(generators);
101+
rows.add(createRow(generators));
102+
}
103+
return rows;
104+
}
105+
106+
protected Map<String, String> createRow(List<ValueGenerator> generators) {
107+
var row = new LinkedHashMap<String, String>();
108+
for (int i = 0; i < generators.size(); ++i) {
109+
var columnIndex = i + 1;
110+
row.put("column" + columnIndex, generators.get(i).generateValue());
111+
}
112+
return row;
113+
}
114+
115+
protected void saveToJsonFile(
116+
String path, String providerName, ArrayList<Map<String, String>> rows) {
117+
var file = new File(path + File.separator + providerName + ".json");
118+
file.getParentFile().mkdirs();
119+
var gson = new GsonBuilder().setPrettyPrinting().create();
120+
try (var writer = new FileWriter(file, false)) {
121+
writer.write(gson.toJson(rows));
122+
} catch (IOException e) {
123+
e.printStackTrace();
124+
}
125+
}
91126
}
Lines changed: 66 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,92 @@
11
[
22
{
3-
"column1": "1829371983",
4-
"column2": "t74zqn",
3+
"column1": "1797594096",
4+
"column2": "bs7c2jkt5",
55
"column3": "true",
6-
"column4": "1.1154093E38",
7-
"column5": "7.509371693369486E307",
8-
"column6": "7262033398193770496",
9-
"column7": "26760"
6+
"column4": "3.732203E37",
7+
"column5": "1.2715199274043585E308",
8+
"column6": "6296439944491566080",
9+
"column7": "6970"
1010
},
1111
{
12-
"column1": "836202696",
13-
"column2": "yi6gp9n4",
12+
"column1": "244633613",
13+
"column2": "a9u4yt1x",
1414
"column3": "true",
15-
"column4": "7.0554253E37",
16-
"column5": "2.2697065484858595E307",
17-
"column6": "8991070833430148096",
18-
"column7": "10960"
15+
"column4": "1.5650869E38",
16+
"column5": "1.5670140400847217E307",
17+
"column6": "1983279278482544128",
18+
"column7": "19119"
1919
},
2020
{
21-
"column1": "533420224",
22-
"column2": "csk39o",
23-
"column3": "false",
24-
"column4": "2.6391171E38",
25-
"column5": "4.3307454755507807E307",
26-
"column6": "6113821603337458688",
27-
"column7": "432"
21+
"column1": "7030610",
22+
"column2": "lo9pfu",
23+
"column3": "true",
24+
"column4": "4.371555E36",
25+
"column5": "1.6353479161200968E308",
26+
"column6": "2437658963592871424",
27+
"column7": "32089"
2828
},
2929
{
30-
"column1": "612482813",
31-
"column2": "8smbp",
32-
"column3": "false",
33-
"column4": "3.1398638E37",
34-
"column5": "1.2406461596764463E308",
35-
"column6": "1659880717815981824",
36-
"column7": "18452"
30+
"column1": "1259233821",
31+
"column2": "psg8yt",
32+
"column3": "true",
33+
"column4": "9.800592E37",
34+
"column5": "1.2155010837346745E308",
35+
"column6": "5329642375222011904",
36+
"column7": "31272"
3737
},
3838
{
39-
"column1": "1568957516",
40-
"column2": "t84wou",
41-
"column3": "false",
42-
"column4": "2.1755983E38",
43-
"column5": "5.668976934742043E307",
44-
"column6": "5000045099756196864",
45-
"column7": "8645"
39+
"column1": "450994688",
40+
"column2": "5nkbgm",
41+
"column3": "true",
42+
"column4": "3.3735314E38",
43+
"column5": "1.366087330447737E308",
44+
"column6": "8726235630834649088",
45+
"column7": "16964"
4646
},
4747
{
48-
"column1": "133265939",
49-
"column2": "l2ta0hx637m",
50-
"column3": "false",
51-
"column4": "1.9291663E38",
52-
"column5": "1.2220882024494144E308",
53-
"column6": "1364205791563574784",
54-
"column7": "6934"
48+
"column1": "1979347645",
49+
"column2": "0j9q4gzmki7r",
50+
"column3": "true",
51+
"column4": "1.1339406E38",
52+
"column5": "4.64274040704326E307",
53+
"column6": "6229716154119256064",
54+
"column7": "18617"
5555
},
5656
{
57-
"column1": "1709865805",
58-
"column2": "n6c3w0tqhu7",
59-
"column3": "false",
60-
"column4": "2.4809326E38",
61-
"column5": "1.6291270374743524E308",
62-
"column6": "5314666474583710720",
63-
"column7": "32169"
57+
"column1": "1662935283",
58+
"column2": "63oclx1men0",
59+
"column3": "true",
60+
"column4": "1.8261065E38",
61+
"column5": "1.5757058779194506E308",
62+
"column6": "2460011949830410240",
63+
"column7": "4300"
6464
},
6565
{
66-
"column1": "1855700147",
67-
"column2": "cvx7nwid",
66+
"column1": "1663294468",
67+
"column2": "dqmyo1nsjti",
6868
"column3": "false",
69-
"column4": "2.49764E38",
70-
"column5": "7.905263665150216E307",
71-
"column6": "4964797011880024064",
72-
"column7": "3435"
69+
"column4": "1.6837108E38",
70+
"column5": "1.1563019684348237E308",
71+
"column6": "421674827094718720",
72+
"column7": "885"
7373
},
7474
{
75-
"column1": "1922506145",
76-
"column2": "0nemvd8k5t6b",
77-
"column3": "false",
78-
"column4": "8.448952E37",
79-
"column5": "1.6630182064489423E308",
80-
"column6": "7900915488732137472",
81-
"column7": "150"
75+
"column1": "1363412854",
76+
"column2": "uwal8b",
77+
"column3": "true",
78+
"column4": "2.3389586E38",
79+
"column5": "7.618417563405701E307",
80+
"column6": "6080113773801057280",
81+
"column7": "18808"
8282
},
8383
{
84-
"column1": "82522412",
85-
"column2": "0dk798bg4o6h",
84+
"column1": "969919995",
85+
"column2": "3p9w5kg8i2",
8686
"column3": "true",
87-
"column4": "2.4666811E38",
88-
"column5": "1.7183764259894158E307",
89-
"column6": "9065392304677391360",
90-
"column7": "8698"
87+
"column4": "3.2939877E38",
88+
"column5": "1.104190091069678E308",
89+
"column6": "5476918053979378688",
90+
"column7": "27341"
9191
}
9292
]
Lines changed: 65 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,92 +1,92 @@
11
[
2+
{
3+
"column1": "true",
4+
"column2": "959006571",
5+
"column3": "1.39153441180765E308",
6+
"column4": "2020",
7+
"column5": "302381372959734208",
8+
"column6": "es05t3w",
9+
"column7": "3.7903207E37"
10+
},
211
{
312
"column1": "false",
4-
"column2": "1601929922",
5-
"column3": "1.3241943841743407E308",
6-
"column4": "18912",
7-
"column5": "1102433883791746560",
8-
"column6": "45kvez8gxbtr",
9-
"column7": "7.5555145E37"
13+
"column2": "192232452",
14+
"column3": "1.410879605637241E307",
15+
"column4": "17904",
16+
"column5": "7829557895107552256",
17+
"column6": "m0ocf9rbnel4",
18+
"column7": "5.0455752E36"
1019
},
1120
{
12-
"column1": "true",
13-
"column2": "1398005202",
14-
"column3": "7.621813684740175E307",
15-
"column4": "3046",
16-
"column5": "4785307044600109056",
17-
"column6": "j7xtvacs2f",
18-
"column7": "1.5259107E38"
21+
"column1": "false",
22+
"column2": "1494567757",
23+
"column3": "5.471606170607792E307",
24+
"column4": "19276",
25+
"column5": "5443520366201786368",
26+
"column6": "be06w1riugkx",
27+
"column7": "1.7236022E38"
1928
},
2029
{
21-
"column1": "true",
22-
"column2": "27567012",
23-
"column3": "2.470364357659723E307",
24-
"column4": "9703",
25-
"column5": "8834370647900213248",
26-
"column6": "0hzkpswfj827",
27-
"column7": "5.8586475E37"
30+
"column1": "false",
31+
"column2": "2130424576",
32+
"column3": "6.290042958636686E307",
33+
"column4": "22817",
34+
"column5": "4909088069355271168",
35+
"column6": "0mtpkwo47y",
36+
"column7": "8.206107E37"
2837
},
2938
{
3039
"column1": "true",
31-
"column2": "747128367",
32-
"column3": "1.3651199176293993E308",
33-
"column4": "24107",
34-
"column5": "5962744773385354240",
35-
"column6": "t1nkej",
36-
"column7": "1.5825222E38"
40+
"column2": "298018982",
41+
"column3": "1.2260549029050845E307",
42+
"column4": "19390",
43+
"column5": "4748563426644669440",
44+
"column6": "2od57e1giq",
45+
"column7": "1.4180222E37"
3746
},
3847
{
3948
"column1": "false",
40-
"column2": "1666024501",
41-
"column3": "1.5443986854891475E308",
42-
"column4": "8383",
43-
"column5": "1600629415442187264",
44-
"column6": "jsdv34bxpg8",
45-
"column7": "5.000561E37"
49+
"column2": "1144192035",
50+
"column3": "8.777203363318414E307",
51+
"column4": "27912",
52+
"column5": "7794301112802794496",
53+
"column6": "oit0pybzef8",
54+
"column7": "8.486258E36"
4655
},
4756
{
4857
"column1": "false",
49-
"column2": "933127549",
50-
"column3": "1.450520811290556E308",
51-
"column4": "3489",
52-
"column5": "4617147189698290688",
53-
"column6": "feq6c2k",
54-
"column7": "5.5974836E37"
55-
},
56-
{
57-
"column1": "true",
58-
"column2": "1403613827",
59-
"column3": "1.7524286944233986E308",
60-
"column4": "31546",
61-
"column5": "8638152057990262784",
62-
"column6": "s54yeqh",
63-
"column7": "4.0321674E37"
58+
"column2": "790065830",
59+
"column3": "1.6885990767625228E308",
60+
"column4": "2923",
61+
"column5": "668105814374870400",
62+
"column6": "d47pulfq",
63+
"column7": "8.585035E37"
6464
},
6565
{
6666
"column1": "false",
67-
"column2": "216526738",
68-
"column3": "1.7677138515423334E308",
69-
"column4": "5610",
70-
"column5": "7954657692166848512",
71-
"column6": "0rbhj8i",
72-
"column7": "2.24759E37"
67+
"column2": "1184351197",
68+
"column3": "1.037235195920485E308",
69+
"column4": "30824",
70+
"column5": "1613568987751692288",
71+
"column6": "ae3owfq79cz",
72+
"column7": "1.964351E38"
7373
},
7474
{
7575
"column1": "true",
76-
"column2": "671932272",
77-
"column3": "4.066172637420526E307",
78-
"column4": "23869",
79-
"column5": "797300628690588544",
80-
"column6": "lt5n2mwi869d",
81-
"column7": "1.8032819E38"
76+
"column2": "1820758618",
77+
"column3": "1.2774201652386244E308",
78+
"column4": "10831",
79+
"column5": "8562143342987529216",
80+
"column6": "khusb0w",
81+
"column7": "2.8695809E38"
8282
},
8383
{
8484
"column1": "true",
85-
"column2": "2016855371",
86-
"column3": "1.6137208162092752E308",
87-
"column4": "15804",
88-
"column5": "1252595885096919808",
89-
"column6": "twgxb57pjuf",
90-
"column7": "7.8552723E37"
85+
"column2": "863878105",
86+
"column3": "3.473340317277154E307",
87+
"column4": "6088",
88+
"column5": "7214404720848516096",
89+
"column6": "c2z475",
90+
"column7": "2.4651914E38"
9191
}
9292
]

0 commit comments

Comments
 (0)