/*
* Copyright (c) 2013-2017 Chris Newland.
* Licensed under https://github.com/AdoptOpenJDK/jitwatch/blob/master/LICENSE-BSD
* Instructions: https://github.com/AdoptOpenJDK/jitwatch/wiki
*/
package org.adoptopenjdk.jitwatch.core;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_CLOSE_PARENTHESES;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_NEWLINE;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_OPEN_PARENTHESES;
import static org.adoptopenjdk.jitwatch.core.JITWatchConstants.S_SPACE;
import java.util.LinkedHashMap;
import java.util.Map;
public class ErrorLog
{
private Map<String, Integer> errorCountMap = new LinkedHashMap<>();
public void clear()
{
errorCountMap.clear();
}
public void addEntry(String entry)
{
if (errorCountMap.containsKey(entry))
{
errorCountMap.put(entry, errorCountMap.get(entry) + 1);
}
else
{
errorCountMap.put(entry, 1);
}
}
@Override
public String toString()
{
StringBuilder builder = new StringBuilder();
for (Map.Entry<String, Integer> entry : errorCountMap.entrySet())
{
String msg = entry.getKey();
int count = entry.getValue();
if (count == 1)
{
builder.append(msg).append(S_NEWLINE);
}
else
{
builder.append(msg).append(S_SPACE).append(S_OPEN_PARENTHESES).append(count).append(S_SPACE).append("times").append(S_CLOSE_PARENTHESES).append(S_NEWLINE);
}
}
return builder.toString();
}
}