package io.takari.maven.plugins.compile; import java.util.HashMap; import java.util.Map; public class ErrorMessage { private final String compilerId; private final Map<String, String[]> variants = new HashMap<>(); public ErrorMessage(String compilerId) { this.compilerId = compilerId; } public void setSnippets(String compilerId, String... snippets) { variants.put(normalizeCompilerId(compilerId), snippets); } public boolean isMatch(String message) { return isMatch(message, variants.get(normalizeCompilerId(compilerId))); } private String normalizeCompilerId(String compilerId) { return "forked-javac".equals(compilerId) ? "javac" : compilerId; } public static boolean isMatch(String message, String... snippets) { int idx = 0; for (String snippet : snippets) { idx = message.indexOf(snippet, idx); if (idx < 0) { return false; } } return true; } @Override public String toString() { StringBuilder sb = new StringBuilder(); for (String snippet : variants.get(compilerId)) { if (sb.length() > 0) { sb.append(" ... "); } sb.append(snippet); } return sb.toString(); } }