1 package org.matsim.core.replanning.conflicts;
3 import java.io.BufferedWriter;
5 import java.io.IOException;
6 import java.io.UncheckedIOException;
7 import java.util.ArrayList;
8 import java.util.Arrays;
9 import java.util.Collections;
10 import java.util.List;
27 public void write(
int iteration,
int rejectedToInitial,
int rejectedToRandom, Map<String, Integer> conflictCounts) {
28 boolean writeHeader = !outputPath.exists();
30 List<String> resolvers =
new ArrayList<>(conflictCounts.keySet());
31 Collections.sort(resolvers);
37 List<String> header =
new ArrayList<>(
38 Arrays.asList(
"iteration",
"rejected_total",
"switched_to_initial",
"switched_to_random"));
39 resolvers.stream().map(r ->
"resolver:" + r).forEach(header::add);
41 writer.write(String.join(
";", header) +
"\n");
44 List<String> row =
new ArrayList<>(Arrays.asList(String.valueOf(iteration),
45 String.valueOf(rejectedToInitial + rejectedToRandom),
46 String.valueOf(rejectedToInitial),
47 String.valueOf(rejectedToRandom)
50 for (String resolver : resolvers) {
51 row.add(String.valueOf(conflictCounts.get(resolver)));
54 writer.write(String.join(
";", row) +
"\n");
57 }
catch (IOException e) {
58 throw new UncheckedIOException(e);
ConflictWriter(File outputPath)
static BufferedWriter getAppendingBufferedWriter(String filename)
void write(int iteration, int rejectedToInitial, int rejectedToRandom, Map< String, Integer > conflictCounts)