From e60131eb4ead92f3ab1caf29d9c89d5d507092d5 Mon Sep 17 00:00:00 2001 From: bculkin2442 Date: Mon, 9 Sep 2019 19:27:05 -0400 Subject: General cleanliness pass --- src/main/java/bjc/everge/BadReplParse.java | 88 ++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/main/java/bjc/everge/BadReplParse.java (limited to 'src/main/java/bjc/everge/BadReplParse.java') diff --git a/src/main/java/bjc/everge/BadReplParse.java b/src/main/java/bjc/everge/BadReplParse.java new file mode 100644 index 0000000..e3858af --- /dev/null +++ b/src/main/java/bjc/everge/BadReplParse.java @@ -0,0 +1,88 @@ +package bjc.everge; + +import java.util.ArrayList; +import java.util.List; +/** + * Exception thrown when ReplPair parsing fails + * @author bjculkin + * + */ +public class BadReplParse extends RuntimeException { + /** + * Serialization ID. + */ + private static final long serialVersionUID = 4752304282380556849L; + /** + * The errors that were encountered during parsing. + */ + public List errs; + + /** + * Create a new exception for ReplPair parsing failing. + * + * @param msg + * The message for the exception. + */ + public BadReplParse(String msg) { + this(msg, new ArrayList<>()); + } + + /** + * Create a new exception for ReplPair parsing failing. + * + * @param msg + * The message for the exception. + * @param errs + * The list of errors encountered while parsing. + */ + public BadReplParse(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); + } + + /** + * Convert the exception to a printable format. + * + * @return The exception as a printable format. + */ + 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