1
1
package lap_race ;
2
2
3
3
import java .io .IOException ;
4
+ import java .io .OutputStream ;
4
5
import java .io .OutputStreamWriter ;
5
6
import java .nio .file .Files ;
6
7
import java .nio .file .Path ;
@@ -20,41 +21,70 @@ public void printPrizes() {
20
21
@ Override
21
22
public void printOverallResults () throws IOException {
22
23
23
- final Path overall_results_html_path = output_directory_path .resolve (overall_results_filename + ".html" );
24
+ final OutputStream stream = Files . newOutputStream ( output_directory_path .resolve (overall_results_filename + ".html" ) );
24
25
25
- try (final OutputStreamWriter html_writer = new OutputStreamWriter (Files .newOutputStream (overall_results_html_path ))) {
26
-
27
- printOverallResultsHeader (html_writer );
26
+ try (final OutputStreamWriter html_writer = new OutputStreamWriter (stream )) {
28
27
printOverallResults (html_writer );
29
- printOverallResultsFooter (html_writer );
30
28
}
31
29
}
32
30
33
31
@ Override
34
32
public void printDetailedResults () throws IOException {
35
33
36
- final Path detailed_results_html_path = output_directory_path .resolve (detailed_results_filename + ".html" );
37
-
38
- try (final OutputStreamWriter html_writer = new OutputStreamWriter (Files .newOutputStream (detailed_results_html_path ))) {
34
+ final OutputStream stream = Files .newOutputStream (output_directory_path .resolve (detailed_results_filename + ".html" ));
39
35
40
- printDetailedResultsHeader ( html_writer );
36
+ try ( final OutputStreamWriter html_writer = new OutputStreamWriter ( stream )) {
41
37
printDetailedResults (html_writer );
42
- printDetailedResultsFooter (html_writer );
43
38
}
44
39
}
45
40
46
41
public void printLegResults (final int leg ) throws IOException {
47
42
48
- final Path leg_results_html_path = output_directory_path .resolve (race_name_for_filenames + "_leg_" + leg + "_" + year + ".html" );
43
+ final OutputStream stream = Files .newOutputStream (output_directory_path .resolve (race_name_for_filenames + "_leg_" + leg + "_" + year + ".html" ));
44
+
45
+ try (final OutputStreamWriter html_writer = new OutputStreamWriter (stream )) {
46
+ printLegResults (html_writer , leg );
47
+ }
48
+ }
49
+
50
+ public void printCombined () throws IOException {
51
+
52
+ final OutputStream stream = Files .newOutputStream (output_directory_path .resolve ("combined.html" ));
53
+
54
+ try (final OutputStreamWriter html_writer = new OutputStreamWriter (stream )) {
55
+
56
+ html_writer .append ("""
57
+ <h3><strong>Results</strong></h3>
58
+ <h4>Overall</h4>
59
+ """ );
60
+
61
+ printOverallResults (html_writer );
62
+
63
+ html_writer .append ("""
64
+ <h4>Full Results</h4>
65
+ """ );
66
+
67
+ printDetailedResults (html_writer );
68
+
69
+ html_writer .append ("""
70
+ <p>M3: mass start leg 3<br />M4: mass start leg 4</p>
71
+ """ );
49
72
50
- try ( final OutputStreamWriter html_writer = new OutputStreamWriter ( Files . newOutputStream ( leg_results_html_path )) ) {
73
+ for ( int leg_number = 1 ; leg_number <= results . number_of_legs ; leg_number ++ ) {
51
74
52
- printLegResultsHeader ( html_writer , leg );
53
- printLegResults (html_writer , getLegResults ( leg ) );
54
- printLegResultsFooter ( html_writer );
75
+ html_writer . append ( "<p></p> \n <h4>Leg " ). append ( String . valueOf ( leg_number )). append ( " Results</h4> \n " );
76
+ printLegResults (html_writer , leg_number );
77
+ }
55
78
}
56
79
}
57
80
81
+ private void printOverallResults (OutputStreamWriter html_writer ) throws IOException {
82
+
83
+ printOverallResultsHeader (html_writer );
84
+ printOverallResultsBody (html_writer );
85
+ printOverallResultsFooter (html_writer );
86
+ }
87
+
58
88
private void printOverallResultsHeader (final OutputStreamWriter writer ) throws IOException {
59
89
60
90
writer .append ("""
@@ -72,7 +102,7 @@ private void printOverallResultsHeader(final OutputStreamWriter writer) throws I
72
102
""" );
73
103
}
74
104
75
- private void printOverallResults (final OutputStreamWriter writer ) throws IOException {
105
+ private void printOverallResultsBody (final OutputStreamWriter writer ) throws IOException {
76
106
77
107
int position = 1 ;
78
108
@@ -112,6 +142,13 @@ private void printOverallResultsFooter(final OutputStreamWriter writer) throws I
112
142
""" );
113
143
}
114
144
145
+ private void printDetailedResults (OutputStreamWriter html_writer ) throws IOException {
146
+
147
+ printDetailedResultsHeader (html_writer );
148
+ printDetailedResultsBody (html_writer );
149
+ printDetailedResultsFooter (html_writer );
150
+ }
151
+
115
152
private void printDetailedResultsHeader (final OutputStreamWriter writer ) throws IOException {
116
153
117
154
writer .append ("""
@@ -126,7 +163,10 @@ private void printDetailedResultsHeader(final OutputStreamWriter writer) throws
126
163
127
164
for (int leg_number = 1 ; leg_number <= results .number_of_legs ; leg_number ++) {
128
165
129
- writer .append ("<th>Runners " ).append (String .valueOf (leg_number )).append ("</th>" );
166
+ writer .append ("<th>Runner" );
167
+ if (results .paired_legs [leg_number -1 ]) writer .append ("s" );
168
+ writer .append (" " ).append (String .valueOf (leg_number )).append ("</th>" );
169
+
130
170
writer .append ("<th>Leg " ).append (String .valueOf (leg_number )).append ("</th>" );
131
171
132
172
if (leg_number < results .number_of_legs )
@@ -142,7 +182,7 @@ private void printDetailedResultsHeader(final OutputStreamWriter writer) throws
142
182
""" );
143
183
}
144
184
145
- private void printDetailedResults (final OutputStreamWriter writer ) throws IOException {
185
+ private void printDetailedResultsBody (final OutputStreamWriter writer ) throws IOException {
146
186
147
187
for (int result_index = 0 ; result_index < results .overall_results .length ; result_index ++)
148
188
printDetailedResult (writer , result_index );
@@ -177,6 +217,21 @@ private void printDetailedResult(final OutputStreamWriter writer, final int resu
177
217
</tr>""" );
178
218
}
179
219
220
+ private void printDetailedResultsFooter (final OutputStreamWriter writer ) throws IOException {
221
+
222
+ writer .append ("""
223
+ </tbody>
224
+ </table>
225
+ """ );
226
+ }
227
+
228
+ private void printLegResults (final OutputStreamWriter html_writer , int leg ) throws IOException {
229
+
230
+ printLegResultsHeader (html_writer , leg );
231
+ printLegResultsBody (html_writer , getLegResults (leg ));
232
+ printLegResultsFooter (html_writer );
233
+ }
234
+
180
235
private void printLegDetails (OutputStreamWriter writer , OverallResult result , Team team ) throws IOException {
181
236
182
237
boolean any_previous_leg_dnf = false ;
@@ -207,14 +262,6 @@ private void printLegDetails(OutputStreamWriter writer, OverallResult result, Te
207
262
}
208
263
}
209
264
210
- private void printDetailedResultsFooter (final OutputStreamWriter writer ) throws IOException {
211
-
212
- writer .append ("""
213
- </tbody>
214
- </table>
215
- """ );
216
- }
217
-
218
265
private void printLegResultsHeader (final OutputStreamWriter writer , final int leg ) throws IOException {
219
266
220
267
writer .append ("""
@@ -235,7 +282,7 @@ private void printLegResultsHeader(final OutputStreamWriter writer, final int le
235
282
""" );
236
283
}
237
284
238
- private void printLegResults (final OutputStreamWriter writer , final LegResult [] leg_results ) throws IOException {
285
+ private void printLegResultsBody (final OutputStreamWriter writer , final LegResult [] leg_results ) throws IOException {
239
286
240
287
for (final LegResult leg_result : leg_results ) {
241
288
0 commit comments