|
1
|
|
/* |
|
2
|
|
* Copyright 2004 the original author or authors. |
|
3
|
|
* |
|
4
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
5
|
|
* you may not use this file except in compliance with the License. |
|
6
|
|
* You may obtain a copy of the License at |
|
7
|
|
* |
|
8
|
|
* http://www.apache.org/licenses/LICENSE-2.0 |
|
9
|
|
* |
|
10
|
|
* Unless required by applicable law or agreed to in writing, software |
|
11
|
|
* distributed under the License is distributed on an "AS IS" BASIS, |
|
12
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
13
|
|
* See the License for the specific language governing permissions and |
|
14
|
|
* limitations under the License. |
|
15
|
|
*/ |
|
16
|
|
package com.ancientprogramming.fixedformat4j.io.read; |
|
17
|
|
|
|
18
|
|
import com.ancientprogramming.fixedformat4j.exception.FixedFormatIOException; |
|
19
|
|
|
|
20
|
|
import java.io.BufferedReader; |
|
21
|
|
import java.io.IOException; |
|
22
|
|
import java.io.InputStream; |
|
23
|
|
import java.io.InputStreamReader; |
|
24
|
|
import java.io.Reader; |
|
25
|
|
import java.nio.charset.Charset; |
|
26
|
|
import java.nio.charset.StandardCharsets; |
|
27
|
|
import java.nio.file.Files; |
|
28
|
|
import java.nio.file.Path; |
|
29
|
|
import java.util.ArrayList; |
|
30
|
|
import java.util.LinkedHashMap; |
|
31
|
|
import java.util.List; |
|
32
|
|
import java.util.Map; |
|
33
|
|
import java.util.Objects; |
|
34
|
|
import java.util.function.BiConsumer; |
|
35
|
|
import java.util.function.Function; |
|
36
|
|
|
|
37
|
|
import static java.lang.String.format; |
|
38
|
|
|
|
39
|
|
/** |
|
40
|
|
* Reads a fixed-format file or stream line by line, routes each line to one or more |
|
41
|
|
* {@link com.ancientprogramming.fixedformat4j.annotation.Record}-annotated classes via |
|
42
|
|
* {@link LinePattern} discriminators, and produces parsed record objects. |
|
43
|
|
* |
|
44
|
|
* <p>Each physical line is treated as exactly one record (or unmatched). If a file contains |
|
45
|
|
* multiple records packed within a single line, split the line before passing it to this reader.</p> |
|
46
|
|
* |
|
47
|
|
* <p>Records are collected eagerly via {@link #read} or dispatched via |
|
48
|
|
* {@link #process(Reader, HandlerRegistry)}. All input-source overloads default to |
|
49
|
|
* {@link java.nio.charset.StandardCharsets#UTF_8}; explicit {@link Charset} overloads are |
|
50
|
|
* provided for every source type.</p> |
|
51
|
|
* |
|
52
|
|
* <p>Quick start — single record type:</p> |
|
53
|
|
* <pre>{@code |
|
54
|
|
* FixedFormatReader reader = FixedFormatReader.builder() |
|
55
|
|
* .addMapping(MyRecord.class, LinePattern.matchAll()) |
|
56
|
|
* .build(); |
|
57
|
|
* |
|
58
|
|
* List<MyRecord> records = reader.read(Path.of("data.txt")).get(MyRecord.class); |
|
59
|
|
* }</pre> |
|
60
|
|
* |
|
61
|
|
* <p>Quick start — heterogeneous file:</p> |
|
62
|
|
* <pre>{@code |
|
63
|
|
* FixedFormatReader reader = FixedFormatReader.builder() |
|
64
|
|
* .addMapping(HeaderRecord.class, LinePattern.prefix("HDR")) |
|
65
|
|
* .addMapping(DetailRecord.class, LinePattern.prefix("DTL")) |
|
66
|
|
* .build(); |
|
67
|
|
* |
|
68
|
|
* ReadResult result = reader.read(Path.of("data.txt")); |
|
69
|
|
* List<HeaderRecord> headers = result.get(HeaderRecord.class); |
|
70
|
|
* List<DetailRecord> details = result.get(DetailRecord.class); |
|
71
|
|
* }</pre> |
|
72
|
|
* |
|
73
|
|
* <p>Quick start — typed handlers (no casts anywhere):</p> |
|
74
|
|
* <pre>{@code |
|
75
|
|
* FixedFormatReader reader = FixedFormatReader.builder() |
|
76
|
|
* .addMapping(HeaderRecord.class, LinePattern.prefix("HDR")) |
|
77
|
|
* .addMapping(DetailRecord.class, LinePattern.prefix("DTL")) |
|
78
|
|
* .build(); |
|
79
|
|
* |
|
80
|
|
* reader.process(Path.of("data.txt"), new HandlerRegistry() |
|
81
|
|
* .on(HeaderRecord.class, this::onHeader) |
|
82
|
|
* .on(DetailRecord.class, this::onDetail)); |
|
83
|
|
* }</pre> |
|
84
|
|
* |
|
85
|
|
* @author Jacob von Eyben - <a href="https://eybenconsult.com">https://eybenconsult.com</a> |
|
86
|
|
* @since 1.8.0 |
|
87
|
|
*/ |
|
88
|
|
public final class FixedFormatReader { |
|
89
|
|
|
|
90
|
|
private final List<RecordMapping<?>> mappings; |
|
91
|
|
private final FixedFormatLineProcessor processor; |
|
92
|
|
|
|
93
|
|
FixedFormatReader(FixedFormatReaderBuilder builder) { |
|
94
|
2
1. <init> : Removed assignment to member variable mappings → KILLED
2. <init> : removed call to java/util/List::copyOf → KILLED
|
this.mappings = List.copyOf(builder.mappings); |
|
95
|
|
this.processor = new FixedFormatLineProcessor( |
|
96
|
3
1. <init> : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatLineProcessor::<init> → KILLED
2. <init> : Removed assignment to member variable processor → KILLED
3. <init> : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReaderBuilder::buildIndex → KILLED
|
builder.buildIndex(), |
|
97
|
|
builder.multiMatchStrategy, |
|
98
|
|
builder.unmatchStrategy, |
|
99
|
|
builder.parseErrorStrategy, |
|
100
|
|
builder.exclusionFilter, |
|
101
|
|
builder.manager); |
|
102
|
|
} |
|
103
|
|
|
|
104
|
|
// --- read --- |
|
105
|
|
|
|
106
|
|
/** |
|
107
|
|
* Eagerly reads all records from {@code reader} and returns a {@link ReadResult} that |
|
108
|
|
* provides type-safe, class-keyed access without casts. |
|
109
|
|
* |
|
110
|
|
* <p>This method is safe to call concurrently from multiple threads on the same |
|
111
|
|
* {@link FixedFormatReader} instance, provided that all configured strategies and the |
|
112
|
|
* {@link com.ancientprogramming.fixedformat4j.format.FixedFormatManager} are also thread-safe. |
|
113
|
|
* The built-in strategies and |
|
114
|
|
* {@link com.ancientprogramming.fixedformat4j.format.impl.FixedFormatManagerImpl} are thread-safe |
|
115
|
|
* and satisfy this requirement. Each call builds its own independent local state; the shared |
|
116
|
|
* line processor carries no mutable per-call state.</p> |
|
117
|
|
* |
|
118
|
|
* <pre>{@code |
|
119
|
|
* ReadResult result = reader.read(source); |
|
120
|
|
* List<HeaderRecord> headers = result.get(HeaderRecord.class); // no cast |
|
121
|
|
* }</pre> |
|
122
|
|
* |
|
123
|
|
* @param reader the source of lines; closed when this method returns |
|
124
|
|
* @return a {@link ReadResult} grouping records by their matched class; never {@code null} |
|
125
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
126
|
|
*/ |
|
127
|
|
public ReadResult read(Reader reader) { |
|
128
|
2
1. read : removed call to java/util/Objects::requireNonNull → KILLED
2. read : replaced call to java/util/Objects::requireNonNull with argument → KILLED
|
Objects.requireNonNull(reader, "reader must not be null"); |
|
129
|
|
// Seed in registration order so result.classes() iterates by registration, not encounter, |
|
130
|
|
// order. Empty entries are stripped before returning. |
|
131
|
1
1. read : removed call to java/util/LinkedHashMap::<init> → KILLED
|
Map<Class<?>, List<Object>> data = new LinkedHashMap<>(); |
|
132
|
|
for (RecordMapping<?> mapping : mappings) { |
|
133
|
4
1. read : removed call to java/util/ArrayList::<init> → KILLED
2. read : removed call to com/ancientprogramming/fixedformat4j/io/read/RecordMapping::getRecordClass → KILLED
3. read : replaced call to java/util/Map::put with argument → KILLED
4. read : removed call to java/util/Map::put → KILLED
|
data.put(mapping.getRecordClass(), new ArrayList<>()); |
|
134
|
|
} |
|
135
|
1
1. read : removed call to java/util/ArrayList::<init> → KILLED
|
List<Object> all = new ArrayList<>(); |
|
136
|
1
1. read : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::readWithMappingCallback → KILLED
|
readWithMappingCallback(reader, (clazz, record) -> { |
|
137
|
3
1. lambda$read$0 : removed call to java/util/Map::get → KILLED
2. lambda$read$0 : replaced call to java/util/Map::get with argument → KILLED
3. lambda$read$0 : removed call to java/util/List::add → KILLED
|
data.get(clazz).add(record); |
|
138
|
1
1. lambda$read$0 : removed call to java/util/List::add → KILLED
|
all.add(record); |
|
139
|
|
}); |
|
140
|
6
1. lambda$read$1 : replaced boolean return with false for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::lambda$read$1 → KILLED
2. lambda$read$1 : removed call to java/util/List::isEmpty → KILLED
3. read : removed call to java/util/Set::removeIf → KILLED
4. lambda$read$1 : replaced boolean return with true for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::lambda$read$1 → KILLED
5. read : removed call to java/util/Map::entrySet → KILLED
6. lambda$read$1 : removed call to java/util/Map$Entry::getValue → KILLED
|
data.entrySet().removeIf(e -> e.getValue().isEmpty()); |
|
141
|
2
1. read : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2. read : removed call to com/ancientprogramming/fixedformat4j/io/read/ReadResult::<init> → KILLED
|
return new ReadResult(data, all); |
|
142
|
|
} |
|
143
|
|
|
|
144
|
|
/** |
|
145
|
|
* Eagerly reads all records from {@code inputStream} using UTF-8 encoding and returns |
|
146
|
|
* a {@link ReadResult}. |
|
147
|
|
* |
|
148
|
|
* @param inputStream the source stream; closed when this method returns |
|
149
|
|
* @return a {@link ReadResult} grouping records by their matched class; never {@code null} |
|
150
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
151
|
|
*/ |
|
152
|
|
public ReadResult read(InputStream inputStream) { |
|
153
|
2
1. read : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2. read : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
return read(inputStream, StandardCharsets.UTF_8); |
|
154
|
|
} |
|
155
|
|
|
|
156
|
|
/** |
|
157
|
|
* Eagerly reads all records from {@code inputStream} using the given charset and returns |
|
158
|
|
* a {@link ReadResult}. |
|
159
|
|
* |
|
160
|
|
* @param inputStream the source stream; closed when this method returns |
|
161
|
|
* @param charset the character encoding to apply |
|
162
|
|
* @return a {@link ReadResult} grouping records by their matched class; never {@code null} |
|
163
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
164
|
|
*/ |
|
165
|
|
public ReadResult read(InputStream inputStream, Charset charset) { |
|
166
|
2
1. read : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2. read : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
return withReader(inputStream, charset, this::read); |
|
167
|
|
} |
|
168
|
|
|
|
169
|
|
/** |
|
170
|
|
* Eagerly reads all records from {@code path} using UTF-8 encoding and returns |
|
171
|
|
* a {@link ReadResult}. |
|
172
|
|
* |
|
173
|
|
* @param path the path to read |
|
174
|
|
* @return a {@link ReadResult} grouping records by their matched class; never {@code null} |
|
175
|
|
* @throws FixedFormatIOException if the path cannot be opened or an IO error occurs |
|
176
|
|
*/ |
|
177
|
|
public ReadResult read(Path path) { |
|
178
|
2
1. read : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2. read : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
return read(path, StandardCharsets.UTF_8); |
|
179
|
|
} |
|
180
|
|
|
|
181
|
|
/** |
|
182
|
|
* Eagerly reads all records from {@code path} using the given charset and returns |
|
183
|
|
* a {@link ReadResult}. |
|
184
|
|
* |
|
185
|
|
* @param path the path to read |
|
186
|
|
* @param charset the character encoding to apply |
|
187
|
|
* @return a {@link ReadResult} grouping records by their matched class; never {@code null} |
|
188
|
|
* @throws FixedFormatIOException if the path cannot be opened or an IO error occurs |
|
189
|
|
*/ |
|
190
|
|
public ReadResult read(Path path, Charset charset) { |
|
191
|
2
1. read : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2. read : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
return withReader(path, charset, this::read); |
|
192
|
|
} |
|
193
|
|
|
|
194
|
|
private void readWithMappingCallback(Reader reader, |
|
195
|
|
BiConsumer<Class<?>, Object> callback) { |
|
196
|
1
1. readWithMappingCallback : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::toBuffered → KILLED
|
BufferedReader buffered = toBuffered(reader); |
|
197
|
3
1. readWithMappingCallback : Substituted 0 with 1 → KILLED
2. readWithMappingCallback : Substituted 0 with 1 → KILLED
3. readWithMappingCallback : Substituted 1 with 0 → KILLED
|
long[] lineCounter = {0L}; |
|
198
|
|
try (buffered) { |
|
199
|
|
String line; |
|
200
|
4
1. readWithMappingCallback : removed conditional - replaced equality check with true → TIMED_OUT
2. readWithMappingCallback : removed call to java/io/BufferedReader::readLine → KILLED
3. readWithMappingCallback : removed conditional - replaced equality check with false → KILLED
4. readWithMappingCallback : negated conditional → KILLED
|
while ((line = buffered.readLine()) != null) { |
|
201
|
4
1. readWithMappingCallback : Substituted 1 with 2 → KILLED
2. readWithMappingCallback : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatLineProcessor::processLine → KILLED
3. readWithMappingCallback : Substituted 0 with 1 → KILLED
4. readWithMappingCallback : Replaced long addition with subtraction → KILLED
|
processor.processLine(line, ++lineCounter[0], callback); |
|
202
|
|
} |
|
203
|
|
} catch (IOException e) { |
|
204
|
9
1. readWithMappingCallback : Substituted 0 with 1 → KILLED
2. readWithMappingCallback : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → KILLED
3. readWithMappingCallback : Replaced long addition with subtraction → KILLED
4. readWithMappingCallback : replaced call to java/lang/String::format with argument → KILLED
5. readWithMappingCallback : removed call to java/lang/String::format → KILLED
6. readWithMappingCallback : Substituted 1 with 0 → KILLED
7. readWithMappingCallback : Substituted 1 with 2 → KILLED
8. readWithMappingCallback : Substituted 0 with 1 → KILLED
9. readWithMappingCallback : removed call to java/lang/Long::valueOf → KILLED
|
throw new FixedFormatIOException(format("IO error reading line %d", lineCounter[0] + 1), e); |
|
205
|
|
} |
|
206
|
|
} |
|
207
|
|
|
|
208
|
|
// --- process --- |
|
209
|
|
|
|
210
|
|
/** |
|
211
|
|
* Reads all records from {@code reader} and dispatches each to the handler registered |
|
212
|
|
* for its class in {@code registry}. |
|
213
|
|
* |
|
214
|
|
* <p>Classes not present in the registry are silently ignored — they are still parsed, |
|
215
|
|
* but no handler is invoked. Because the registry is supplied per call rather than stored |
|
216
|
|
* in the reader, the same {@link FixedFormatReader} instance is safe to use from multiple |
|
217
|
|
* threads with independent registries, provided that all configured strategies and the |
|
218
|
|
* {@link com.ancientprogramming.fixedformat4j.format.FixedFormatManager} are also thread-safe. |
|
219
|
|
* The built-in strategies and |
|
220
|
|
* {@link com.ancientprogramming.fixedformat4j.format.impl.FixedFormatManagerImpl} are thread-safe |
|
221
|
|
* and satisfy this requirement.</p> |
|
222
|
|
* |
|
223
|
|
* <pre>{@code |
|
224
|
|
* reader.process(source, new HandlerRegistry() |
|
225
|
|
* .on(HeaderRecord.class, this::onHeader) |
|
226
|
|
* .on(DetailRecord.class, this::onDetail)); |
|
227
|
|
* }</pre> |
|
228
|
|
* |
|
229
|
|
* @param reader the source of lines; closed when this method returns |
|
230
|
|
* @param registry the typed handlers to invoke per matched class; must not be {@code null} |
|
231
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
232
|
|
*/ |
|
233
|
|
public void process(Reader reader, HandlerRegistry registry) { |
|
234
|
2
1. process : removed call to java/util/Objects::requireNonNull → SURVIVED
2. process : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
|
Objects.requireNonNull(reader, "reader must not be null"); |
|
235
|
2
1. process : removed call to java/util/Objects::requireNonNull → SURVIVED
2. process : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
|
Objects.requireNonNull(registry, "registry must not be null"); |
|
236
|
1
1. process : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::readWithMappingCallback → KILLED
|
readWithMappingCallback(reader, registry::dispatch); |
|
237
|
|
} |
|
238
|
|
|
|
239
|
|
/** |
|
240
|
|
* Reads all records from {@code inputStream} using UTF-8 encoding and dispatches each to |
|
241
|
|
* its handler in {@code registry}. |
|
242
|
|
* |
|
243
|
|
* @param inputStream the source stream; closed when this method returns |
|
244
|
|
* @param registry the typed handlers to invoke per matched class; must not be {@code null} |
|
245
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
246
|
|
*/ |
|
247
|
|
public void process(InputStream inputStream, HandlerRegistry registry) { |
|
248
|
1
1. process : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
process(inputStream, StandardCharsets.UTF_8, registry); |
|
249
|
|
} |
|
250
|
|
|
|
251
|
|
/** |
|
252
|
|
* Reads all records from {@code inputStream} using the given charset and dispatches each to |
|
253
|
|
* its handler in {@code registry}. |
|
254
|
|
* |
|
255
|
|
* @param inputStream the source stream; closed when this method returns |
|
256
|
|
* @param charset the character encoding to apply |
|
257
|
|
* @param registry the typed handlers to invoke per matched class; must not be {@code null} |
|
258
|
|
* @throws FixedFormatIOException if an IO error occurs while reading |
|
259
|
|
*/ |
|
260
|
|
public void process(InputStream inputStream, Charset charset, HandlerRegistry registry) { |
|
261
|
2
1. process : removed call to java/util/Objects::requireNonNull → SURVIVED
2. process : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
|
Objects.requireNonNull(registry, "registry must not be null"); |
|
262
|
2
1. process : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2. lambda$process$2 : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
withReader(inputStream, charset, r -> { process(r, registry); return null; }); |
|
263
|
|
} |
|
264
|
|
|
|
265
|
|
/** |
|
266
|
|
* Reads all records from {@code path} using UTF-8 encoding and dispatches each to |
|
267
|
|
* its handler in {@code registry}. |
|
268
|
|
* |
|
269
|
|
* @param path the path to read |
|
270
|
|
* @param registry the typed handlers to invoke per matched class; must not be {@code null} |
|
271
|
|
* @throws FixedFormatIOException if the path cannot be opened or an IO error occurs |
|
272
|
|
*/ |
|
273
|
|
public void process(Path path, HandlerRegistry registry) { |
|
274
|
1
1. process : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
process(path, StandardCharsets.UTF_8, registry); |
|
275
|
|
} |
|
276
|
|
|
|
277
|
|
/** |
|
278
|
|
* Reads all records from {@code path} using the given charset and dispatches each to |
|
279
|
|
* its handler in {@code registry}. |
|
280
|
|
* |
|
281
|
|
* @param path the path to read |
|
282
|
|
* @param charset the character encoding to apply |
|
283
|
|
* @param registry the typed handlers to invoke per matched class; must not be {@code null} |
|
284
|
|
* @throws FixedFormatIOException if the path cannot be opened or an IO error occurs |
|
285
|
|
*/ |
|
286
|
|
public void process(Path path, Charset charset, HandlerRegistry registry) { |
|
287
|
2
1. process : removed call to java/util/Objects::requireNonNull → SURVIVED
2. process : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
|
Objects.requireNonNull(registry, "registry must not be null"); |
|
288
|
2
1. process : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2. lambda$process$3 : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
withReader(path, charset, r -> { process(r, registry); return null; }); |
|
289
|
|
} |
|
290
|
|
|
|
291
|
|
// --- factory --- |
|
292
|
|
|
|
293
|
|
/** |
|
294
|
|
* Returns a new builder for constructing a {@link FixedFormatReader}. |
|
295
|
|
* |
|
296
|
|
* @return a fresh builder instance |
|
297
|
|
*/ |
|
298
|
|
public static FixedFormatReaderBuilder builder() { |
|
299
|
2
1. builder : removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReaderBuilder::<init> → KILLED
2. builder : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::builder → KILLED
|
return new FixedFormatReaderBuilder(); |
|
300
|
|
} |
|
301
|
|
|
|
302
|
|
private static BufferedReader toBuffered(Reader reader) { |
|
303
|
5
1. toBuffered : negated conditional → KILLED
2. toBuffered : removed conditional - replaced equality check with false → KILLED
3. toBuffered : removed conditional - replaced equality check with true → KILLED
4. toBuffered : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::toBuffered → KILLED
5. toBuffered : removed call to java/io/BufferedReader::<init> → KILLED
|
return reader instanceof BufferedReader ? (BufferedReader) reader : new BufferedReader(reader); |
|
304
|
|
} |
|
305
|
|
|
|
306
|
|
private static <R> R withReader(InputStream inputStream, Charset charset, Function<Reader, R> body) { |
|
307
|
2
1. withReader : removed call to java/util/Objects::requireNonNull → KILLED
2. withReader : replaced call to java/util/Objects::requireNonNull with argument → KILLED
|
Objects.requireNonNull(inputStream, "inputStream must not be null"); |
|
308
|
2
1. withReader : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
2. withReader : removed call to java/util/Objects::requireNonNull → SURVIVED
|
Objects.requireNonNull(charset, "charset must not be null"); |
|
309
|
1
1. withReader : removed call to java/io/InputStreamReader::<init> → KILLED
|
try (InputStreamReader r = new InputStreamReader(inputStream, charset)) { |
|
310
|
3
1. withReader : removed call to java/util/function/Function::apply → KILLED
2. withReader : replaced call to java/util/function/Function::apply with argument → KILLED
3. withReader : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
|
return body.apply(r); |
|
311
|
|
} catch (IOException e) { |
|
312
|
1
1. withReader : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → NO_COVERAGE
|
throw new FixedFormatIOException("IO error reading input stream", e); |
|
313
|
|
} |
|
314
|
|
} |
|
315
|
|
|
|
316
|
|
private static <R> R withReader(Path path, Charset charset, Function<Reader, R> body) { |
|
317
|
2
1. withReader : replaced call to java/util/Objects::requireNonNull with argument → KILLED
2. withReader : removed call to java/util/Objects::requireNonNull → KILLED
|
Objects.requireNonNull(path, "path must not be null"); |
|
318
|
2
1. withReader : replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
2. withReader : removed call to java/util/Objects::requireNonNull → SURVIVED
|
Objects.requireNonNull(charset, "charset must not be null"); |
|
319
|
3
1. withReader : Substituted 0 with 1 → KILLED
2. withReader : removed call to java/io/InputStreamReader::<init> → KILLED
3. withReader : removed call to java/nio/file/Files::newInputStream → KILLED
|
try (InputStreamReader r = new InputStreamReader(Files.newInputStream(path), charset)) { |
|
320
|
3
1. withReader : replaced call to java/util/function/Function::apply with argument → KILLED
2. withReader : removed call to java/util/function/Function::apply → KILLED
3. withReader : replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
|
return body.apply(r); |
|
321
|
|
} catch (IOException e) { |
|
322
|
5
1. withReader : Substituted 0 with 1 → KILLED
2. withReader : removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → KILLED
3. withReader : removed call to java/lang/String::format → KILLED
4. withReader : Substituted 1 with 0 → KILLED
5. withReader : replaced call to java/lang/String::format with argument → KILLED
|
throw new FixedFormatIOException(format("Cannot open path: %s", path), e); |
|
323
|
|
} |
|
324
|
|
} |
|
325
|
|
} |
| | Mutations |
| 94 |
|
1.1 Location : <init> Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] Removed assignment to member variable mappings → KILLED
2.2 Location : <init> Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to java/util/List::copyOf → KILLED
|
| 96 |
|
1.1 Location : <init> Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatLineProcessor::<init> → KILLED
2.2 Location : <init> Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] Removed assignment to member variable processor → KILLED
3.3 Location : <init> Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReaderBuilder::buildIndex → KILLED
|
| 128 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullReader_npeMessageNamesParameter()] removed call to java/util/Objects::requireNonNull → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullReader_npeMessageNamesParameter()] replaced call to java/util/Objects::requireNonNull with argument → KILLED
|
| 131 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to java/util/LinkedHashMap::<init> → KILLED
|
| 133 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] removed call to java/util/ArrayList::<init> → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] removed call to com/ancientprogramming/fixedformat4j/io/read/RecordMapping::getRecordClass → KILLED
3.3 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] replaced call to java/util/Map::put with argument → KILLED
4.4 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] removed call to java/util/Map::put → KILLED
|
| 135 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] removed call to java/util/ArrayList::<init> → KILLED
|
| 136 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::readWithMappingCallback → KILLED
|
| 137 |
|
1.1 Location : lambda$read$0 Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] removed call to java/util/Map::get → KILLED
2.2 Location : lambda$read$0 Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaCanRethrowToAbortProcessing()] replaced call to java/util/Map::get with argument → KILLED
3.3 Location : lambda$read$0 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderOutputShapes.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderOutputShapes]/[method:readGetReturnsTypedRecordsInOrder()] removed call to java/util/List::add → KILLED
|
| 138 |
|
1.1 Location : lambda$read$0 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError]/[method:customLambdaStrategyDoesNotEmitRecordForFailedLine()] removed call to java/util/List::add → KILLED
|
| 140 |
|
1.1 Location : lambda$read$1 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:readResultExcludesClassesWithNoMatches()] replaced boolean return with false for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::lambda$read$1 → KILLED
2.2 Location : lambda$read$1 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:readResultExcludesClassesWithNoMatches()] removed call to java/util/List::isEmpty → KILLED
3.3 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:readResultExcludesClassesWithNoMatches()] removed call to java/util/Set::removeIf → KILLED
4.4 Location : lambda$read$1 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderOutputShapes.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderOutputShapes]/[method:readGetReturnsTypedRecordsInOrder()] replaced boolean return with true for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::lambda$read$1 → KILLED
5.5 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError]/[method:skipAndLogSkipsBadLineAndContinuesParsing()] removed call to java/util/Map::entrySet → KILLED
6.6 Location : lambda$read$1 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError]/[method:skipAndLogSkipsBadLineAndContinuesParsing()] removed call to java/util/Map$Entry::getValue → KILLED
|
| 141 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError]/[method:customLambdaStrategyDoesNotEmitRecordForFailedLine()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderParseError]/[method:customLambdaStrategyDoesNotEmitRecordForFailedLine()] removed call to com/ancientprogramming/fixedformat4j/io/read/ReadResult::<init> → KILLED
|
| 153 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:throwsNullPointerWhenInputStreamIsNull()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
| 166 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:throwsNullPointerWhenInputStreamIsNull()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
| 178 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullPath_npeMessageNamesParameter()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
| 191 |
|
1.1 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullPath_npeMessageNamesParameter()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2.2 Location : read Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::read → KILLED
|
| 196 |
|
1.1 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::toBuffered → KILLED
|
| 197 |
|
1.1 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderUnmatched.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderUnmatched]/[method:throwsOnUnmatchedLineWhenStrategyIsThrowException()] Substituted 0 with 1 → KILLED
2.2 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] Substituted 0 with 1 → KILLED
3.3 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] Substituted 1 with 0 → KILLED
|
| 200 |
|
1.1 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to java/io/BufferedReader::readLine → KILLED
2.2 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed conditional - replaced equality check with false → KILLED
3.3 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] negated conditional → KILLED
4.4 Location : readWithMappingCallback Killed by : none removed conditional - replaced equality check with true → TIMED_OUT
|
| 201 |
|
1.1 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderUnmatched.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderUnmatched]/[method:throwsOnUnmatchedLineWhenStrategyIsThrowException()] Substituted 1 with 2 → KILLED
2.2 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatLineProcessor::processLine → KILLED
3.3 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] Substituted 0 with 1 → KILLED
4.4 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:parseErrorCustomLambdaInvokesHandlerAndDoesNotEmitRecord()] Replaced long addition with subtraction → KILLED
|
| 204 |
|
1.1 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] Substituted 0 with 1 → KILLED
2.2 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → KILLED
3.3 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] Replaced long addition with subtraction → KILLED
4.4 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] replaced call to java/lang/String::format with argument → KILLED
5.5 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] removed call to java/lang/String::format → KILLED
6.6 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] Substituted 1 with 0 → KILLED
7.7 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] Substituted 1 with 2 → KILLED
8.8 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] Substituted 0 with 1 → KILLED
9.9 Location : readWithMappingCallback Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] removed call to java/lang/Long::valueOf → KILLED
|
| 234 |
|
1.1 Location : process Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
2.2 Location : process Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
|
| 235 |
|
1.1 Location : process Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
2.2 Location : process Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
|
| 236 |
|
1.1 Location : process Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:processWorksWithInputStreamAndCharset()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::readWithMappingCallback → KILLED
|
| 248 |
|
1.1 Location : process Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:throwsNullPointerWhenInputStreamIsNullOnProcess()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
| 261 |
|
1.1 Location : process Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
2.2 Location : process Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
|
| 262 |
|
1.1 Location : process Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:throwsNullPointerWhenCharsetIsNullOnProcess()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2.2 Location : lambda$process$2 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:processWorksWithInputStreamAndCharset()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
| 274 |
|
1.1 Location : process Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:throwsNullPointerWhenRegistryIsNullForPathNoCharset(java.nio.file.Path)] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
| 287 |
|
1.1 Location : process Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
2.2 Location : process Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
|
| 288 |
|
1.1 Location : process Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:processWorksWithPath()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
2.2 Location : lambda$process$3 Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderProcess]/[method:processWorksWithPath()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::process → KILLED
|
| 299 |
|
1.1 Location : builder Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderBuilder.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderBuilder]/[method:throwsWhenNoMappings()] removed call to com/ancientprogramming/fixedformat4j/io/read/FixedFormatReaderBuilder::<init> → KILLED
2.2 Location : builder Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderBuilder.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderBuilder]/[method:throwsWhenNoMappings()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::builder → KILLED
|
| 303 |
|
1.1 Location : toBuffered Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] negated conditional → KILLED
2.2 Location : toBuffered Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:ioErrorMidReadMessageContainsCorrectLineNumber()] removed conditional - replaced equality check with false → KILLED
3.3 Location : toBuffered Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed conditional - replaced equality check with true → KILLED
4.4 Location : toBuffered Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::toBuffered → KILLED
5.5 Location : toBuffered Killed by : com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestStrategiesAndHandlers]/[method:multiMatchThrowOnAmbiguityThrowsWhenTwoPatternsMatch()] removed call to java/io/BufferedReader::<init> → KILLED
|
| 307 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullInputStream_npeMessageNamesParameter()] removed call to java/util/Objects::requireNonNull → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullInputStream_npeMessageNamesParameter()] replaced call to java/util/Objects::requireNonNull with argument → KILLED
|
| 308 |
|
1.1 Location : withReader Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
2.2 Location : withReader Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
|
| 309 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] removed call to java/io/InputStreamReader::<init> → KILLED
|
| 310 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] removed call to java/util/function/Function::apply → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] replaced call to java/util/function/Function::apply with argument → KILLED
3.3 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromInputStream()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
|
| 312 |
|
1.1 Location : withReader Killed by : none removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → NO_COVERAGE
|
| 317 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullPath_npeMessageNamesParameter()] replaced call to java/util/Objects::requireNonNull with argument → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readNullPath_npeMessageNamesParameter()] removed call to java/util/Objects::requireNonNull → KILLED
|
| 318 |
|
1.1 Location : withReader Killed by : none replaced call to java/util/Objects::requireNonNull with argument → SURVIVED
Covering tests
2.2 Location : withReader Killed by : none removed call to java/util/Objects::requireNonNull → SURVIVED
Covering tests
|
| 319 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] Substituted 0 with 1 → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] removed call to java/io/InputStreamReader::<init> → KILLED
3.3 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] removed call to java/nio/file/Files::newInputStream → KILLED
|
| 320 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] replaced call to java/util/function/Function::apply with argument → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] removed call to java/util/function/Function::apply → KILLED
3.3 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:readsFromPath()] replaced return value with null for com/ancientprogramming/fixedformat4j/io/read/FixedFormatReader::withReader → KILLED
|
| 322 |
|
1.1 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] Substituted 0 with 1 → KILLED
2.2 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] removed call to com/ancientprogramming/fixedformat4j/exception/FixedFormatIOException::<init> → KILLED
3.3 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] removed call to java/lang/String::format → KILLED
4.4 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] Substituted 1 with 0 → KILLED
5.5 Location : withReader Killed by : com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources.[engine:junit-jupiter]/[class:com.ancientprogramming.fixedformat4j.io.TestFixedFormatReaderInputSources]/[method:nonExistentPathThrowsWithPathInMessage()] replaced call to java/lang/String::format with argument → KILLED
|