From d86cbcbabc4b251956bd2c5bf4dfa459a00bb239 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Tue, 18 Jun 2019 17:44:32 -0400 Subject: Lots of frontend work --- src/main/java/bjc/everge/ReplParseException.java | 58 ++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 src/main/java/bjc/everge/ReplParseException.java (limited to 'src/main/java/bjc/everge/ReplParseException.java') diff --git a/src/main/java/bjc/everge/ReplParseException.java b/src/main/java/bjc/everge/ReplParseException.java new file mode 100644 index 0000000..0091b83 --- /dev/null +++ b/src/main/java/bjc/everge/ReplParseException.java @@ -0,0 +1,58 @@ +package bjc.everge; + +import java.util.ArrayList; +import java.util.List; + +public class ReplParseException extends RuntimeException { + public List errs; + + public ReplParseException(String msg) { + this(msg, new ArrayList<>()); + } + + public ReplParseException(String msg, List errs) { + super(msg); + + this.errs = errs; + } + + @Override + public String toString() { + String errString; + if (errs.size() == 0) errString = "An error"; + else errString = "Errors"; + + return String.format("%s occured parsing replacement pairs: %s\n%s", + errString, getMessage(), errs); + } + + public String toPrintString() { + StringBuilder errString = new StringBuilder("[ERROR] "); + + if (errs.size() == 0) { + errString.append("No specific errors"); + } else if (errs.size() == 1) { + errString.append("An error"); + } else { + errString.append(errs.size()); + errString.append(" errors"); + } + + errString.append(" occured parsing replacement pairs:"); + if (!getMessage().equals("")) { + errString.append(" "); + errString.append(getMessage()); + } + + if (errs.size() > 0) { + errString.append("\n\t"); + + for (ReplError err : errs) { + errString.append(err.toPrintString("\t")); + errString.append("\n\t"); + } + } + + return errString.toString().trim(); + } +} -- cgit v1.2.3