package io.gitlab.jfronny.gson.compile.processor.util.valueprocessor; import javax.annotation.processing.Messager; import javax.lang.model.element.Element; import javax.tools.Diagnostic; import java.util.List; import java.util.stream.Collectors; public class ElementException extends Exception { private final List messages; public ElementException(String message, Element element) { this(List.of(new Message(message, element))); } public ElementException(List messages) { super(messages.stream().map(Message::message).collect(Collectors.joining("\n"))); this.messages = messages; } public void printMessage(Messager messager) { for (Message message : messages) { if (message.element != null) messager.printMessage(Diagnostic.Kind.ERROR, message.message, message.element); else messager.printMessage(Diagnostic.Kind.ERROR, message.message); } } public static record Message(String message, Element element) {} }