|
3 | 3 | import java.io.IOException;
|
4 | 4 | import java.nio.file.Files;
|
5 | 5 | import java.nio.file.Path;
|
| 6 | +import java.util.ArrayList; |
6 | 7 | import java.util.List;
|
7 | 8 |
|
8 | 9 | public class Input {
|
@@ -87,22 +88,35 @@ private boolean entriesAlreadyContain(final Team[] entries, final String team_na
|
87 | 88 | RawResult[] loadRawResults() throws IOException {
|
88 | 89 |
|
89 | 90 | final List<String> lines = Files.readAllLines(raw_results_path);
|
90 |
| - final RawResult[] raw_results = new RawResult[lines.size()]; |
| 91 | + final List<RawResult> raw_results = new ArrayList<>(); |
91 | 92 |
|
92 |
| - for (int i = 0; i < raw_results.length; i++) |
93 |
| - loadRawResult(raw_results, lines, i); |
| 93 | + for (String line : lines) |
| 94 | + loadRawResult(raw_results, line); |
94 | 95 |
|
95 |
| - return raw_results; |
| 96 | + return raw_results.toArray(new RawResult[0]); |
96 | 97 | }
|
97 | 98 |
|
98 |
| - private static void loadRawResult(final RawResult[] raw_results, final List<String> lines, final int raw_result_index) { |
| 99 | + private static void loadRawResult(final List<RawResult> raw_results, String line) { |
99 | 100 |
|
100 |
| - final RawResult previous_result = raw_result_index > 0 ? raw_results[raw_result_index -1] : null; |
101 |
| - final RawResult result = new RawResult(lines.get(raw_result_index)); |
| 101 | + int comment_start_index = line.indexOf("//"); |
| 102 | + if (comment_start_index > -1) line = line.substring(0, comment_start_index); |
102 | 103 |
|
103 |
| - if (previous_result != null && previous_result.recorded_finish_time.compareTo(result.recorded_finish_time) > 0) |
104 |
| - throw new RuntimeException("result " + (raw_result_index +1) + " out of order"); |
| 104 | + if (!line.isBlank()) { |
105 | 105 |
|
106 |
| - raw_results[raw_result_index] = result; |
| 106 | + RawResult result; |
| 107 | + try { |
| 108 | + result = new RawResult(line); |
| 109 | + } |
| 110 | + catch (NumberFormatException e) { |
| 111 | + return; |
| 112 | + } |
| 113 | + |
| 114 | + final RawResult previous_result = !raw_results.isEmpty() ? raw_results.get(raw_results.size() - 1) : null; |
| 115 | + |
| 116 | + if (previous_result != null && previous_result.recorded_finish_time.compareTo(result.recorded_finish_time) > 0) |
| 117 | + throw new RuntimeException("result " + (raw_results.size() + 1) + " out of order"); |
| 118 | + |
| 119 | + raw_results.add(result); |
| 120 | + } |
107 | 121 | }
|
108 | 122 | }
|
0 commit comments