Skip to content

Commit 2c35158

Browse files
committed
Added combined HTML output.
1 parent 16179f5 commit 2c35158

File tree

3 files changed

+82
-29
lines changed

3 files changed

+82
-29
lines changed

src/main/java/lap_race/OutputHTML.java

+74-27
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package lap_race;
22

33
import java.io.IOException;
4+
import java.io.OutputStream;
45
import java.io.OutputStreamWriter;
56
import java.nio.file.Files;
67
import java.nio.file.Path;
@@ -20,41 +21,70 @@ public void printPrizes() {
2021
@Override
2122
public void printOverallResults() throws IOException {
2223

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"));
2425

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)) {
2827
printOverallResults(html_writer);
29-
printOverallResultsFooter(html_writer);
3028
}
3129
}
3230

3331
@Override
3432
public void printDetailedResults() throws IOException {
3533

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"));
3935

40-
printDetailedResultsHeader(html_writer);
36+
try (final OutputStreamWriter html_writer = new OutputStreamWriter(stream)) {
4137
printDetailedResults(html_writer);
42-
printDetailedResultsFooter(html_writer);
4338
}
4439
}
4540

4641
public void printLegResults(final int leg) throws IOException {
4742

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+
""");
4972

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++) {
5174

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+
}
5578
}
5679
}
5780

81+
private void printOverallResults(OutputStreamWriter html_writer) throws IOException {
82+
83+
printOverallResultsHeader(html_writer);
84+
printOverallResultsBody(html_writer);
85+
printOverallResultsFooter(html_writer);
86+
}
87+
5888
private void printOverallResultsHeader(final OutputStreamWriter writer) throws IOException {
5989

6090
writer.append("""
@@ -72,7 +102,7 @@ private void printOverallResultsHeader(final OutputStreamWriter writer) throws I
72102
""");
73103
}
74104

75-
private void printOverallResults(final OutputStreamWriter writer) throws IOException {
105+
private void printOverallResultsBody(final OutputStreamWriter writer) throws IOException {
76106

77107
int position = 1;
78108

@@ -112,6 +142,13 @@ private void printOverallResultsFooter(final OutputStreamWriter writer) throws I
112142
""");
113143
}
114144

145+
private void printDetailedResults(OutputStreamWriter html_writer) throws IOException {
146+
147+
printDetailedResultsHeader(html_writer);
148+
printDetailedResultsBody(html_writer);
149+
printDetailedResultsFooter(html_writer);
150+
}
151+
115152
private void printDetailedResultsHeader(final OutputStreamWriter writer) throws IOException {
116153

117154
writer.append("""
@@ -126,7 +163,10 @@ private void printDetailedResultsHeader(final OutputStreamWriter writer) throws
126163

127164
for (int leg_number = 1; leg_number <= results.number_of_legs; leg_number++) {
128165

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+
130170
writer.append("<th>Leg ").append(String.valueOf(leg_number)).append("</th>");
131171

132172
if (leg_number < results.number_of_legs)
@@ -142,7 +182,7 @@ private void printDetailedResultsHeader(final OutputStreamWriter writer) throws
142182
""");
143183
}
144184

145-
private void printDetailedResults(final OutputStreamWriter writer) throws IOException {
185+
private void printDetailedResultsBody(final OutputStreamWriter writer) throws IOException {
146186

147187
for (int result_index = 0; result_index < results.overall_results.length; result_index++)
148188
printDetailedResult(writer, result_index);
@@ -177,6 +217,21 @@ private void printDetailedResult(final OutputStreamWriter writer, final int resu
177217
</tr>""");
178218
}
179219

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+
180235
private void printLegDetails(OutputStreamWriter writer, OverallResult result, Team team) throws IOException {
181236

182237
boolean any_previous_leg_dnf = false;
@@ -207,14 +262,6 @@ private void printLegDetails(OutputStreamWriter writer, OverallResult result, Te
207262
}
208263
}
209264

210-
private void printDetailedResultsFooter(final OutputStreamWriter writer) throws IOException {
211-
212-
writer.append("""
213-
</tbody>
214-
</table>
215-
""");
216-
}
217-
218265
private void printLegResultsHeader(final OutputStreamWriter writer, final int leg) throws IOException {
219266

220267
writer.append("""
@@ -235,7 +282,7 @@ private void printLegResultsHeader(final OutputStreamWriter writer, final int le
235282
""");
236283
}
237284

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 {
239286

240287
for (final LegResult leg_result : leg_results) {
241288

src/main/java/lap_race/Results.java

+6
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ public void processResults() throws IOException {
105105
printDetailedResults();
106106
printLegResults();
107107
printPrizes();
108+
printCombined();
108109
}
109110

110111
private void configure() throws IOException {
@@ -441,6 +442,11 @@ private void printPrizes() throws IOException {
441442
output_PDF.printPrizes();
442443
}
443444

445+
private void printCombined() throws IOException {
446+
447+
((OutputHTML)output_HTML).printCombined();
448+
}
449+
444450
static Duration parseTime(final String element) {
445451

446452
try {

src/test/resources/devils_burdens/html_output/expected/simple_detailed_2020.html

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<th>No</th>
66
<th>Team</th>
77
<th>Category</th>
8-
<th>Runners 1</th>
8+
<th>Runner 1</th>
99
<th>Leg 1</th>
1010
<th>Split 1</th>
1111
<th>Runners 2</th>
@@ -14,7 +14,7 @@
1414
<th>Runners 3</th>
1515
<th>Leg 3</th>
1616
<th>Split 3</th>
17-
<th>Runners 4</th>
17+
<th>Runner 4</th>
1818
<th>Leg 4</th>
1919
<th>Total</th>
2020
</tr>

0 commit comments

Comments
 (0)